Wednesday, 15 August 2012

casting - Go: cast any int value to int64 in type switch -


मुझे अक्सर एक स्थिति होती है, जहां मुझे int (किसी भी प्रकार, Int / int8 / 16/32/64 ) और एक प्रकार स्विच का उपयोग करके इसे जांचें

  switch t: = v। (प्रकार) {केस int, int8, int16, int32 , Int64: // को Int64 केस यूआईटी, यूआईटी 8, यूआईटी 16, यूआईटी 32, यूआईटी 64: // को यूआईटी 64 में डालें)   

अब मैं एक सीधा कलाकार का उपयोग नहीं कर सकता, क्योंकि t < / कोड> इस मामले में टाइप की जाएगी इंटरफ़ेस {} । क्या मुझे वास्तव में इसे प्रत्येक पूर्णांक प्रकार के लिए केस में विभाजित करना है?

मुझे पता है कि मैं इसे प्रतिबिंबित करके प्रतिबिंब के माध्यम से कर सकता हूं। ValueOf (v)।

UPDATE:

एक मुद्दा दायर किया, और रोब को सिर्फ इस मामले में प्रतिबिंबित करें का उपयोग करने की सलाह दी गई।

अधिक संदर्भ के बिना आपको एक राय देने में कठिनाई होती है लेकिन ऐसा लगता है कि आप अपने कार्यान्वयन को सामान्य बनाने की कोशिश कर रहे हैं, जो कि लोगों से आम है जो अधिक गतिशील भाषाओं या w / सामान्य समर्थन के साथ काम करता है। / P>

सीखने को जाने की प्रक्रिया का एक हिस्सा अपने प्रकार की प्रणाली को गले लगाने के लिए सीख रहा है, और आप कहां से आ रहे हैं, यह चुनौतीपूर्ण हो सकता है।

आमतौर पर, जाओ में, आप चाहते हैं एक प्रकार का समर्थन करने के लिए जो सभी संभावित मूल्यों को संभालना आवश्यक हो सकता है। आपके मामले में यह शायद एक इंट 64 होगा।

उदाहरण के लिए, गणित पैकेज पर एक नज़र डालें। यह केवल इंट 64 के साथ काम करता है और किसी को इसका इस्तेमाल करने के लिए हर चीज को परिवर्तित करने के बजाय ठीक से टाइप करने के लिए उम्मीद करता है।

एक अन्य विकल्प टाइप-नास्तिक होने के लिए एक इंटरफ़ेस का उपयोग करना है, जैसे सॉर्ट पैकेज करता है असल में, किसी भी प्रकार की विधि जो आपके पैकेज के बाहर लागू की जाएगी और आपको कुछ विधियों को परिभाषित करने की उम्मीद है।

इन विशेषताओं को जानने और स्वीकार करने में कुछ समय लगता है, लेकिन कुल मिलाकर, अंत में, यह साबित होता है रखरखाव और मजबूती के मामले में अच्छा होना इंटरफेस सुनिश्चित करें कि आपके पास ऑर्थोगोनैलिटी है और मजबूत प्रकार यह सुनिश्चित करता है कि आप प्रकार के रूपांतरणों के नियंत्रण में हैं, जो अंत में बग और स्मृति में अनावश्यक प्रतियां भी पैदा कर सकता है।

चीयर्स < / html>

No comments:

Post a Comment