2024-01-30 09:58AM
参考:https://bitfieldconsulting.com/golang/map-types
go 中有哪些 map 类型?
go 没有特定的数据类型称为 map;相反,我们使用 map 关键字来创建一个带有某种类型的键和另一种类型(或相同类型)的值的映射。
var menu map[string]float64
在这个列子中,我们声明一个映射,其键为字符串,值为 float64。 结果是一个非常特定类型的变量:map[string]float64。
map 类型不同
Go 是一种强类型语言,这意味着我们只能将内容分配给类型为 map[string]float64 的菜单变量。 例如,我们无法为其分配 map[string]int 值或 map[rune]float64,这些是不同的类型。
go map key 类型
地图可以有哪些类型的键? 例如,我们可以制作一个键为切片甚至函数的映射吗? 不可以,因为键必须是可比较的:也就是说,必须为该类型定义 == 和 != 运算符。
所有基本类型(string、int等)都是可比较的; 结构也是如此。 函数和切片不是,映射也不是,所以,我们不能将映射的键设置为另一个映射!
对 map 没有这样的限制,没有这样的限制;它们可以是任何类型。它们可以是任何类型。事实上,通常使用字符串(string)到任意类型的映射来表示任意数据的树形结构。
nil 映射与空值映射
仅仅声明映射的类型并不能为我们提供可以使用的值:我们无法读取或写入 nil 映射。 因此,如果我们还没有任何值要放入映射中,我们可以使用 nil 映射文字来初始化它:
menu := map[string]float64{}
登录
请登录后再发表评论。
评论列表:
目前还没有人发表评论