我想用另一个元素替换数组中的特定元素:
let replace = ["123","87","123","765","som","123","op","123"].map {$0 == "123" ? $0 = "replace" : $0}
但我不能这样做,因为编译器会抛出错误:
error: cannot assign to value: '$0' is immutable
那么,这可能会改变$ 0变得可变吗?
答案 0 :(得分:5)
您不需要$0
可变。 map
将使用您返回的任何值,因此您可以像这样使用最后一张地图:
.map {$0 == "123" ? "replace" : $0}
当map
关闭运行时,只要$0
与"123"
匹配,它就会返回replace
,否则会返回当前值。
答案 1 :(得分:-1)
map
函数中的此闭包参数是不可变的,不能更改,因为它是按值传递并从原始值复制的。如果标记为inout
,则可以更改参数的值,这不是您的情况。