为什么 Go 中不支持切片作为映射键
与数组不同,Go 切片不是值类型。复制切片引用相同的支持数组,从而使切片之间的相等比较不明确。当分配新的切片值时,对副本所做的更改也会影响原始切片。
因此,需要相等性检查的映射键必须具有固定的相等概念。虽然数组提供了逐元素相等性,但切片提供了诸如逐元素或后备存储相等性之类的选项。此外,复制映射键(可能涉及支持数组)会引入潜在的行为不一致。
为了避免混淆并确保一致性,Go 选择不支持切片作为映射键,尽管它们是使用数组实现的。
以上是为什么切片不能用作 Go 中的 Map Key?的详细内容。更多信息请关注PHP中文网其他相关文章!