克服Go 中的錯誤:「型別介面{} 不支援索引」
使用包含各種介面的對應時{}值,您在嘗試為其建立索引時可能會遇到錯誤,特別是「類型介面{} 不支援索引」。發生這種情況的原因是,interface{} 類型本身並不支援索引。
要成功索引並存取此映射中的元素,需要將 interface{} 值明確轉換為預期類型,例如切片。這種轉換可以透過在方括號內指定目標類型來實現。
例如,考慮以下 Go 程式碼:
package main import "fmt" type Host struct { Name string } func main() { Map := make(map[string]interface{}) Map["hosts"] = []Host{Host{"test.com"}, Host{"test2.com"}} // Convert interface{} to a slice of Host hm := Map["hosts"].([]Host) fmt.Println(hm[0]) }
在此範例中,地圖「Map」填入為主機結構的一部分。要存取切片的第一個元素,您需要將「Map['hosts']」中的interface{}值轉換為[]Host類型。這是透過表達式完成的:
hm := Map["hosts"].([]Host)
透過轉換,您可以像任何標準 Go 切片一樣存取切片的元素。在這種情況下,輸出將為“test.com”,因為它是主機切片中的第一個元素。
以上是如何解決Go中的「類型介面{}不支援索引」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!