इंटरफ़ेस स्लाइस प्रकार रूपांतरण Go में: यह काम क्यों नहीं करता?
सभी को नमस्कार! मैं Go में नया हूँ और इंटरफ़ेस स्लाइस के लिए प्रकार रूपांतरण समझ नहीं पा रहा हूँ। मेरे पास एक फ़ंक्शन है जो `[]interface{}` लेता है, लेकिन मैं इसे एक विशिष्ट प्रकार का स्लाइस देना चाहता हूँ, जैसे `[]string`। Go इसे सीधे क्यों नहीं करने देता?
यहाँ एक उदाहरण कोड है जो मेरे लिए काम नहीं करता:
```go
package main
import "fmt"
func printAll(items []interface{}) {
for _, item := range items {
fmt.Println(item)
}
}
func main() {
names := []string{"Alice", "Bob", "Charlie"}
// त्रुटि: cannot use names (type []string) as type []interface{} in argument to printAll
printAll(names)
}
```
मैं समझता हूँ कि `string` इंटरफ़ेस `interface{}` को लागू करता है, लेकिन `[]string` को `[]interface{}` के रूप में क्यों उपयोग नहीं किया जा सकता? दस्तावेज़ में कोवेरियंस के बारे में लिखा है, लेकिन मैं पूरी तरह से नहीं समझता कि इसे व्यवहार में कैसे लागू किया जाए। मुझे एक फ़ंक्शन में विभिन्न प्रकार के स्लाइस पास करने की आवश्यकता है। इस समस्या को सही तरीके से कैसे हल करूँ? शायद मुझे रिफ्लेक्शन या कुछ और उपयोग करना चाहिए?