arrays - 如何快速卡住数组?

标签 arrays swift immutability

在 js 中,我可以在向数组添加一些元素后卡住数组。 Swift 中有什么东西可以卡住数组吗?

What is freezing?

Ans: Suppose we have an array. We add some elements to that array.

/* This is javascript code */
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.push("Kiwi");
// fruits contains some elements

// Now freeze fruits. After freezing, no one can add, delete, modify this array.
Object.freeze(fruits);

我的问题在这里 - “我们可以在 swift 中卡住数组吗?”

最佳答案

您可以创建数组的不可变副本,但对象的可变性仅由变量声明控制(let 不可变,var 可变),所以一旦你创建了一个可变对象,你就不能让它不可变,反之亦然。

var fruits = ["Banana", "Orange", "Apple", "Mango"]
fruits.append("Kiwi")

let finalFruits = fruits // Immutable copy
finalFruits.append("Pear") // Gives compile-time error: Cannot use mutating member on immutable value: 'finalFruits' is a 'let' constant

关于arrays - 如何快速卡住数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56666541/

相关文章:

c++ - 当我访问数组的元素时,硬件级别会发生什么?

c - 随机数,其范围是数组的元素

swift - SecItemCopyMatching 失败 : -50 while trying to create a VPN connection programmatically in ios swift

swift - 函数返回可选 ("String")

javascript - 处理复杂的不可变对象(immutable对象)

javascript - 使用成员函数扩展 React.js 存储数据结构?

python - 带数组的傅里叶变换

c++ - memcpy 问题 -> 试图复制一个结构数组

ios - Swinject 的循环依赖问题

c# - 为什么不可变对象(immutable对象)是线程安全的?