Go में इंटरफ़ेस स्लाइस के प्रकार रूपांतरण: []interface{} को []string में कैसे बदलें?
सभी को नमस्कार! मैं Go में नया हूँ और एक समस्या का सामना कर रहा हूँ जो मुझे बहुत अजीब लगती है। मेरे पास एक फ़ंक्शन है जो `[]interface{}` (इंटरफ़ेस का स्लाइस) लेता है, लेकिन मुझे इसे दूसरे फ़ंक्शन में पास करना है जो `[]string` की अपेक्षा करता है। मैं एक सरल type assertion करने की कोशिश कर रहा हूँ, लेकिन कंपाइलर एक त्रुटि देता है।
यहाँ कोड का उदाहरण है:
```go
package main
import "fmt"
func printStrings(strings []string) {
for _, s := range strings {
fmt.Println(s)
}
}
func main() {
var data []interface{} = []interface{}{"hello", "world", "golang"}
// त्रुटि: cannot use data (type []interface{}) as type []string in argument to printStrings
printStrings(data)
}
```
मैं समझता हूँ कि `[]interface{}` और `[]string` अलग-अलग प्रकार हैं, लेकिन `data` का हर तत्व पहले से ही एक string है! Go एक स्लाइस को दूसरे में सीधे क्यों नहीं बदलने देता? अन्य भाषाओं में, जैसे Python या Java में, यह type casting के माध्यम से काम करता है।
मैंने `data.([]