我想用这样的另一个元素替换数组中的特定元素:
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
是可变的。 map
将使用您返回的任何值,因此您可以像这样使用最后一张地图:
.map { $0 == "123" ? "replace" : $0 }
当运行
map
闭包时,每当 $0
匹配 "123"
时,它将返回 replace
,否则它将返回当前值。
map
函数中的这个闭包参数是不可变的,不能更改,因为它是按值传递的,并从原始值复制而来。更改参数的值是可能的,如果它被标记为inout
,这不是你的情况。