Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python的模拟';golang的默认设置_Go - Fatal编程技术网

Python的模拟';golang的默认设置

Python的模拟';golang的默认设置,go,Go,python-setdefault方法中有一个方便的字典快捷方式。例如,如果我有表示从字符串到列表的映射的dict,我可以这样写 if key not in map: map[key] = [] map[key].append(value) 这太冗长了,更像是一种python式的方式: map.setdefault(key, []).append(value) 顺便说一下,有一个defaultdict类 所以我的问题是,围棋中的地图有类似的东西吗?我真的很讨厌使用map[string

python-setdefault方法中有一个方便的字典快捷方式。例如,如果我有表示从字符串到列表的映射的dict,我可以这样写

if key not in map:
    map[key] = []
map[key].append(value)
这太冗长了,更像是一种python式的方式:

map.setdefault(key, []).append(value)
顺便说一下,有一个defaultdict类


所以我的问题是,围棋中的地图有类似的东西吗?我真的很讨厌使用map[string][]int和类似的类型。

没有专门针对map的类型,但是
nil
是一个有效的空片段(可以与
append
内置代码一起使用),因此下面的代码:

x := make(map[string][]int)
key := "foo"
x[key] = append(x[key], 1)

无论映射中是否存在
,都将正常工作。

它可以与默认映射一起正常工作:


但是应该注意,它不适用于映射的映射,您仍然应该显式地
make
map值。
m := make(map[string][]int)
m["test0"] = append(m["test0"], 10)
m["test1"] = append(m["test1"], 10)
m["test2"] = append(m["test2"], 10)