go映射本質上是為了存儲鍵值對,其中鍵具有單一類型,並且值是單一類型的值。 您不能將多個不同的類型的值直接存儲在單個地圖值中。 但是,您可以使用稱為interface{}
不,不,Go Maps不能直接在相同的值slot
中同時直接保存不同的數據類型。 如前所述,GO地圖中的值必須全部相同。 試圖將不同類型的值分配給同一地圖密鑰的值將導致編譯錯誤。 如上所示,解決方法是使用package main import "fmt" func main() { myMap := make(map[string]interface{}) myMap["name"] = "John Doe" myMap["age"] = 30 myMap["active"] = true myMap["height"] = 1.85 fmt.Println(myMap) }
> typeinterface{}
中,但是不會改變地圖中所有值必須為
> > > >> > > interface{}
這是您執行類型斷言的方式: interface{}
語法執行類型斷言。 interface{}
變量表示斷言是否成功。 始終檢查
>時,在單個GO映射中管理不同數據類型的最佳實踐是什麼? 過度使用interface{}
可以導致類型較小的安全性和更多易於錯誤的代碼。 考慮這些替代方案:
ok
interface{}
選擇正確的方法取決於特定的用例。 對於簡單的場景,單獨的地圖可能就足夠了。 對於復雜的數據結構,自定義結構是一個更好的選擇。 切記在代碼中優先考慮清晰度,鍵入安全性和可維護性。 以上是Go語言map如何存儲多種類型的值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!