gpt4 book ai didi

Swift:是否可以在不返回的情况下创建带循环的匿名函数?

转载 作者:搜寻专家 更新时间:2023-11-01 07:31:20 24 4
gpt4 key购买 nike

让我们看看工作示例:

let numbers: [Int] = {
var num:[Int] = []
for i in 0...3{
num.append(i)
}
return num
}()

是否可以避免在 vars 中保存状态并直接返回生成的值?
就像在这个例子中一样(我想要在 [] 中返回所有 i):

let numbers: [Int] = {
for i in 0...3{
i
}
}()

这会在最后一行产生错误 期望返回“[Int]”的闭包中缺少 return

最佳答案

在这种特殊情况下,以下内容就足够了:

let numbers = Array(0...3)

对于一般情况,例如,代替:

let numbers2: [String] = {
var ret: [String] = []
for i in 0...3 {
ret.append(join("", Repeat(count: i, repeatedValue: "\(i)")))
}
return ret
}()
// -> ["", "1", "22", "333"]

你可以使用 map :

let numbers: [String] = map(0...3) { i in
join("", Repeat(count: i, repeatedValue: "\(i)"))
}
// -> ["", "1", "22", "333"]

关于Swift:是否可以在不返回的情况下创建带循环的匿名函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32395273/

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