<分区>
PHP 中的数组可用于数字键和字符串键。这太棒了。
例如:
$array[0] = "My value.";
或
$array['key'] = "My value";
为什么不去实现这样的数组?
在 Go 中有两种不同的概念和语法(映射)有什么好处?
我相信我没有看到这背后的用处。
标签 go
<分区>
PHP 中的数组可用于数字键和字符串键。这太棒了。
例如:
$array[0] = "My value.";
或
$array['key'] = "My value";
为什么不去实现这样的数组?
在 Go 中有两种不同的概念和语法(映射)有什么好处?
我相信我没有看到这背后的用处。
最佳答案
Go 不是 PHP。虽然一些高级语言共享这种抽象,但它并不常见。数组和映射是用于不同目的的不同数据结构。
PHP的数组其实就是底层的哈希表。 Go 有真正的数组,它有 slice ,这是对数组更强大的抽象。
拥有真正的数组,为您提供可预测的内存布局和真正的 O(1) 索引(Go 的 slice 也是如此,它在内部使用数组)。对底层数据存储使用 HashMap 会导致所有操作的开销不断增加,而且无法更好地控制数据局部性。
关于Go:数组和映射必须是不同的概念/特征吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25294290/