如何在Go 中為包含物件陣列的Map 建立索引:解決「Type Interface {} 不支援索引」錯誤
索引Go中包含物件數組的對應可能會導致錯誤「類型介面{} 不支援索引」。發生此錯誤的原因是 Go 不知道陣列元素的預期類型,這些元素由介面類型表示。
要克服此錯誤並檢索所需的元素,您需要明確轉換 interface{}值設定為您期望的特定類型。
考慮以下映射:
Map := make(map[string]interface{}) Map["Users"] = Users_Array Map["Hosts"] = Hosts_Array
要存取「Users」數組的第一個元素,請使用以下命令code:
Users_Array := Map["Users"].([]User) firstUser := Users_Array[0]
同樣,對於「 Hosts」陣列:
Hosts_Array := Map["Hosts"].([]Host) firstHost := Hosts_Array[0]
這種到特定類型的轉換確保了索引操作可以成功執行。未能執行轉換將導致「類型介面 {} 不支援索引」錯誤。
以下是示範轉換和索引過程的範例:
package main import "fmt" type Host struct { Name string } type User struct { Name string } func main() { Map := make(map[string]interface{}) Map["hosts"] = []Host{{"test.com"}, {"test2.com"}} Map["users"] = []User{{"john"}, {"jane"}} hm := Map["hosts"].([]Host) fmt.Println(hm[0]) um := Map["users"].([]User) fmt.Println(um[0]) }
以上是如何解決Go Maps中「type interface {}不支援索引」的問題?的詳細內容。更多資訊請關注PHP中文網其他相關文章!