多次调用函数并在swift中获取结果列表?
我有一个函数多次调用函数并在swift中获取结果列表?,swift,Swift,我有一个函数func f()->Int,我想调用它n:Int次,并获取返回值的列表 在ruby中,您可以执行n.times.collect{f} swift是否有类似的功能方法 目前,我使用以下手工实现: extension Int{ func collect(f:()->T)->[T]{ 变量l:[T]=[] 对于uu0..这可能不是您要寻找的答案,但您可以将Ranges与高阶函数一起使用 例如: // a range of 1 to 42 let range = (1...42) let
func f()->Int
,我想调用它n:Int
次,并获取返回值的列表
在ruby中,您可以执行n.times.collect{f}
swift是否有类似的功能方法
目前,我使用以下手工实现:
extension Int{
func collect(f:()->T)->[T]{
变量l:[T]=[]
对于uu0..这可能不是您要寻找的答案,但您可以将Range
s与高阶函数一起使用
例如:
// a range of 1 to 42
let range = (1...42)
let views1 = range.map { _ in
return UIView(frame: self.bounds)
}
// Shorthand
let views2 = (1...42).map { _ in UIView(frame: self.bounds) }
您的实现很好,但我会将其更改为使用map
,如下面的答案所示。此外,guard self>0 else{return[]}
建议防止崩溃。感谢您让我注意到1…0崩溃:o