为啥我可以在 Swift 中更改 const 数组的成员? [复制]

Posted

技术标签:

【中文标题】为啥我可以在 Swift 中更改 const 数组的成员? [复制]【英文标题】:Why can I alter the members of a const array in Swift? [duplicate]为什么我可以在 Swift 中更改 const 数组的成员? [复制] 【发布时间】:2014-06-08 15:55:34 【问题描述】:

为什么下面的代码有效?试图弄清楚 Swift 如何处理 const。

let list = [1, 2, 3, 4, 5]
list[1] = 0

编辑:这是Is there a reason that Swift array assignment is inconsistent (neither a reference nor a deep copy)? 的副本

我需要在搜索方面做得更好:)

【问题讨论】:

【参考方案1】:

在 Swift 中数组是 const 有点不同于 Swift 中的其他东西。当一个数组为const时,它只是意味着它的长度不能改变,单个元素仍然可以改变。

【讨论】:

【参考方案2】:

要使用 C 等效项,list 就像“指向非常量对象的常量指针”。这意味着您无法更改list 指向的数组,但您可以更改其内容。

【讨论】:

以上是关于为啥我可以在 Swift 中更改 const 数组的成员? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

Swift iOS - 我为啥可以循环遍历一组类对象并进行属性更改但不能更改结构[重复]

如何在 Swift 中声明一个静态 const char 数组? [关闭]

将 Swift 字符串数组转换为 const char * const *

为啥允许我在 C 中使用 const 限定变量作为数组大小?

Swift 3:为啥我不能在 didDeselectRowAt 中更改 cell.accessoryType 和 cell.textLabel

Swift - 为啥我在选择时无法更改色调?