gpt4 book ai didi

swift - 更新数组中的元素

转载 作者:可可西里 更新时间:2023-10-31 23:57:24 25 4
gpt4 key购买 nike

我们如何更新数组的元素

方法一:-工作代码:-

var numberWords = ["one", "two", "three"]
for i in 0..<numberWords.count {
if numberWords[i] == "two" {
numberWords[i] = "2"
}
}

但我正在寻找使用 Swift 高阶函数的解决方案

方法二:

numberWords = numberWords.filter  {
if $0 == "one" {
$0 = "1"//cannot assign value $0 is immutable
}
return true
}

Error thrown : Cannot assign value $0 is immutable

是否可能或方法 1 是唯一的方法?

最佳答案

不要使用filter(),它没有意义。
filter 的要点是迭代每个元素,并根据您的需要告诉您是否保留(返回 true)或不保留(返回 false)。

相反,使用 map():

numberWords = numberWords.map({ return $0 == "one" ? "1" : $0 })

我使用了一个三元 if 并明确地写了一个“返回”(这不是必需的,因为它已经“内部”完成了(你需要返回一些东西)),但你可以更明确地保持你以前的代码:

numberWords = numberWords.map({
if $0 == "one" {
return "1"
}
return $0 })

map() 更适合这种情况。如果您想迭代每个项目并在需要时修改它,您可以使用它,这就是您想要做的。

关于swift - 更新数组中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49508817/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com