У меня есть функция func f() -> Int
, и я хотел бы вызвать ее n: Int
раз и получить список возвращаемых значений.
В ruby вы бы сделали n.times.collect { f }
.
Есть ли у swift аналогичный функциональный подход?
На данный момент я использую следующую ручную реализацию:
extension Int {
func collect<T>(f: () -> T) -> [T] {
var l: [T] = []
for _ in 0..<self {
l.append(f())
}
return l
}
}
// Usage
let myList = 42.collect { UIView(frame: self.bounds) }