如何将 $0 更改为可变的?
How to change $0 to be mutable?
我想用另一个元素替换数组中的特定元素,如下所示:
let replace = ["123","87","123","765","som","123","op","123"].map {[=10=] == "123" ? [=10=] = "replace" : [=10=]}
但我不能这样做,因为编译器向我抛出错误:
error: cannot assign to value: '[=11=]' is immutable
那么,是否可以将 $0 更改为可变的?
您不需要 [=10=]
可变。 map
将使用您 return 的任何值,因此您可以像这样使用最后一张地图:
.map {[=12=] == "123" ? "replace" : [=12=]}
当 map
闭包为 运行 时,每当 [=10=]
匹配 "123"
时,它将 return replace
,否则它将 return当前值。
map
函数中的这个闭包参数是不可变的,不能更改,因为它是按值传递的,是从原始值复制而来的。更改参数的值是可能的,如果它被标记为 inout
,这不是你的情况。
我想用另一个元素替换数组中的特定元素,如下所示:
let replace = ["123","87","123","765","som","123","op","123"].map {[=10=] == "123" ? [=10=] = "replace" : [=10=]}
但我不能这样做,因为编译器向我抛出错误:
error: cannot assign to value: '[=11=]' is immutable
那么,是否可以将 $0 更改为可变的?
您不需要 [=10=]
可变。 map
将使用您 return 的任何值,因此您可以像这样使用最后一张地图:
.map {[=12=] == "123" ? "replace" : [=12=]}
当 map
闭包为 运行 时,每当 [=10=]
匹配 "123"
时,它将 return replace
,否则它将 return当前值。
map
函数中的这个闭包参数是不可变的,不能更改,因为它是按值传递的,是从原始值复制而来的。更改参数的值是可能的,如果它被标记为 inout
,这不是你的情况。