我正在为.clear() 原始类型寻找相似 c 函数的东西map。! a- g$ s: h+ k
或者我应该只创建一个新地图? 6 S l% x3 q" H, R- @9 E更新:谢谢你的回答。通过查看答案,我刚刚意识到创建新地图有时会导致我们不想要的不一致。考虑以下示例:$ m3 U* e& {( }: k4 u
var a map[string]stringvar b map[string]stringfunc main() { a = make(map[string]string) b=a a["hello"]="world" a = nil fmt.Println(b["hello"])} U* a& P4 H3 P: R! J
我的意思是,这.clear()和c 中的函数仍然不同,它将清除对象中的内容。 ) `) f- E2 _5 K/ g" y* x5 w. h) u ( w' N5 \ K2 x 解决方案: ' p7 a0 o, o: A 你可能应该创建一个新的地图。除非多个代码引用相同的地图,并且其中一个清楚地需要清除值,否则没有真正的理由试图清除现有的地图。1 V) w) }" c+ r6 i! t6 w8 m( [# Z
所以是的,你应该说" v/ d% U! e7 _; ^. i
mymap = make(map[keytype]valtype)- @, x+ h; s. Y* Z; j