如何将 $0 变为可变的?

问题描述 投票:0回答:2

我想用这样的另一个元素替换数组中的特定元素:

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 更改为可变的?

swift immutability mutability
2个回答
7
投票

你不需要

$0
是可变的。
map
将使用您返回的任何值,因此您可以像这样使用最后一张地图:

.map { $0 == "123" ? "replace" : $0 }

当运行

map
闭包时,每当
$0
匹配
"123"
时,它将返回
replace
,否则它将返回当前值。


-1
投票

map
函数中的这个闭包参数是不可变的,不能更改,因为它是按值传递的,并从原始值复制而来。更改参数的值是可能的,如果它被标记为
inout
,这不是你的情况。

© www.soinside.com 2019 - 2024. All rights reserved.