GO语言MAP
Map初始化
-
func TestInitMap(t *testing.T) {
-
m1 := map[string]int{"a": 1, "b": 2, "c": 3}
-
t.Log(m1["a"])
-
t.Logf("m1 len=%d", len(m1))
-
m2 := map[string]string{}
-
//key不存在会赋默认值
-
t.Log(m2["a"])
-
t.Logf("m2 len=%d", len(m2))
-
m3 := make(map[string]int, 10)
-
m3["d"] = 1111
-
t.Logf("m3 len=%d", len(m3))
-
}
未初始化map不能赋值
-
package main
-
-
import "fmt"
-
-
type Vertex struct {
-
X int
-
Y int
-
}
-
-
func main() {
-
var Asset map[string] Vertex
-
Asset["abc"] = vertex
-
fmt.Println(Asset["abc"])
-
}
编译时报错:panic: assignment to entry in nil map
正常的示例
-
package main
-
-
import "fmt"
-
-
type Vertex struct {
-
X int
-
Y int
-
}
-
-
func main() {
-
var Asset map[string] Vertex
-
Asset = make(map[string] Vertex)
-
Asset["abc"] = vertex
-
fmt.Println(Asset["abc"])
-
}
map的增删改查
-
package main
-
-
import "fmt"
-
-
func main() {
-
m := make(map[string]int)
-
-
m["Answer"] = 42 //初始化
-
fmt.Println("The value:", m["Answer"])
-
-
m["Answer"] = 48 //修改值
-
fmt.Println("The value:", m["Answer"])
-
-
delete(m, "Answer") //删除值
-
fmt.Println("The value:", m["Answer"])
-
-
if m["Answer"] == 0 {
-
fmt.Println("不存在的key") //不能存在的key的值为0
-
}
-
-
v, ok := m["Answer"] //通过双赋值检测某个键存在,如果 key 在 m 中, ok 为 true。否则, ok 为 false,并且 elem 是 map 的元素类型的零值。
-
fmt.Println("The value:", v, "Present?", ok)
-
}
map对于获取不存在的key的Value值时,不是nil,而是赋默认值。判断map中是否存在KEY的方法如下:
-
func TestMapKey(t *testing.T) {
-
m1 := map[string]int{"a": 1, "b": 2, "c": 3}
-
if value, ok := m1["d"]; ok {
-
t.Logf("Key 'a' value is %d", value)
-
} else {
-
t.Log("Key 'a' is not existing")
-
}
-
}
map实现工厂模式
-
func TestFuncValue(t *testing.T) {
-
mapf := map[string]func(op int) int{}
-
mapf["a"] = func(op int) int { return op }
-
mapf["b"] = func(op int) int { return op * op }
-
mapf["c"] = func(op int) int { return op * op * op }
-
t.Log(mapf["a"](2), mapf["b"](2), mapf["c"](2))
-
}
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgfhief
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13