Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
多次调用函数并在swift中获取结果列表?_Swift - Fatal编程技术网

多次调用函数并在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