मैंने इस समस्या को कुछ समय में चलाया है जब नक्शे की चाबियाँ उसी तरह से उपयोग करना चाहते हैं लेकिन नक्शे में मान अलग-अलग हैं। मैंने सोचा कि मैं एक ऐसा फ़ंक्शन लिख सकता हूं जो कि टाइप प्रकार के रूप में इंटरफ़ेस {} के साथ महत्वपूर्ण प्रकार लेता है लेकिन यह काम नहीं करता है।गो लैंग जेनेरिक नक्शा मान
func main() {
mapOne := map[string]int
mapTwo := map[string]double
mapThree := map[string]SomeStruct
useKeys(mapOne)
}
func useKeys(m map[string]interface{}) {
//something with keys here
}
यह सुनिश्चित करने के लिए कोई शानदार तरीका नहीं है कि मुझे कम मूल्यों को अलग-अलग मूल्यों के लिए सरल चीजों को फिर से लिखना आसान लगता है।
आप सामने क्या मूल्य प्रकार आप को लेकर चिंतित हैं पता है, तो आप एक लिख सकते हैं 'func कुंजी (एम इंटरफ़ेस {})' (या एक फ़ंक्शन जो चैनल के माध्यम से या फ़ंक्शन को कॉल करके बढ़ती कुंजी प्रदान करता है) और एक [टाइप स्विच] (http://golang.org/ref/spec#Type_switches) करें यह। लेकिन मैं लूप को दोहराना चाहता हूं, जहां भी आप सभी चाबियों का उपयोग करना चाहते हैं, न केवल सामान्य "लिखने के लिए जाओ" कारणों के लिए, बल्कि अधिक संकलन-समय प्रकार की जांच के लिए। – twotwotwo