主页

go - map类型

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{} 

返回>>

登录

请登录后再发表评论。

评论列表:

目前还没有人发表评论