在 Swift 中,我可以使用 for-in 枚举来初始化或重置数组吗?
In Swift, can I use a for-in enumeration to initialize or reset an array?
我目前在 Swift class 中有一个 Bool 类型的数组,声明如下:
public var cardIsTaken: [Bool]
为了跟上 Swift 风格指南,该指南要求尽可能避免索引 for 循环,我有这样的东西:
for takenFlag in cardIsTaken {
takenFlag = true
}
.. 这给了我错误信息 "cannot assign to 'let' value 'takenFlag'"
出于好奇,我尝试用 "var" 声明它,如:
for var takenFlag in cardIsTaken {
takenFlag = true
}
.. 这只是给了我一大堆不同的、不相关的错误信息。
我 99% 确定这意味着此时,如果我想更改每个值,我不能使用 "for foo in array" 遍历数组,但如果有办法做到这一点,我会洗耳恭听。
最好的方法是使用数组的内置映射函数。
cardIsTaken = cardIsTaken.map { isTaken in true }
我目前在 Swift class 中有一个 Bool 类型的数组,声明如下:
public var cardIsTaken: [Bool]
为了跟上 Swift 风格指南,该指南要求尽可能避免索引 for 循环,我有这样的东西:
for takenFlag in cardIsTaken {
takenFlag = true
}
.. 这给了我错误信息 "cannot assign to 'let' value 'takenFlag'"
出于好奇,我尝试用 "var" 声明它,如:
for var takenFlag in cardIsTaken {
takenFlag = true
}
.. 这只是给了我一大堆不同的、不相关的错误信息。
我 99% 确定这意味着此时,如果我想更改每个值,我不能使用 "for foo in array" 遍历数组,但如果有办法做到这一点,我会洗耳恭听。
最好的方法是使用数组的内置映射函数。
cardIsTaken = cardIsTaken.map { isTaken in true }