猿问

Go 实现是否存储地图的长度?

a 是否将map其长度存储在某处,还是每次调用时都会计算len(my_map)

语言规范为地图显示了这一点,这并没有真正的帮助:

map元素的数量称为它的长度。对于 map m,可以使用内置函数发现它,len并且在执行过程中可能会发生变化。可以在执行期间使用赋值添加元素并使用索引表达式检索;可以使用 delete 内置函数删除它们。

在“长度和容量”部分下,我们看到:

表达len(s)如果是常数s是一个string常数。如果类型为 an或to an且表达式不包含通道接收或(非常量)函数调用,则表达式len(s)andcap(s)为常量;在这种情况下不进行评估。否则,调用和不恒定,并进行评估。sarraypointerarraysslencaps

所以它告诉我们它s不是常量并且被评估,但它没有说明它是否像他们对slice类型那样被查找为存储值。


慕斯709654
浏览 166回答 1
1回答
随时随地看视频慕课网APP

相关分类

Go
我要回答