我目前开始学习Swift 3(我已经有其他编程语言的经验),并问我是否可以修改for-each循环的迭代器中的值(不是for-in!).我们来看看下面的例子:
var numbers = [45000.0, 50000.0, 60000.0] for i in 0..在这个例子中,我可以修改数组内部的值.但是如果我想使用for-each循环:
for number in numbers { number = number + (number * 0.1) }它不会编译.是否有可能以任何其他方式修改数字的值(在我看来,这似乎是C++中的迭代器)?
谢谢你的回答!
1> Sulthan..:您仍然在考虑旧的编程语言.现代方法是使用辅助函数一步完成所有操作,而不使用手动迭代:
let numbers = [45000.0, 50000.0, 60000.0] let newNumbers = numbers.map { $0 + $0 * 0.1 }请注意,我们生成了一个新数组,而不是更改现有数组.使用常量(不可变)有助于我们避免许多常见的编程错误.