很多时候遇到Swift函数编译器建议我写一些类似的东西:
var personArr3 = (0...5).map(transform: (Int) throws -> (Int) throws -> >)
当我点击“Enter”时,它将评估如下:
var personArr3 = (0...5).map { (<Int>) -> T in
<code>
}
我真的不知道这意味着什么。
我可以使用以下内容正确编写:
var personsArr2 = (0...5).map{ _ in
Person(firstName: "Bobby", lastName: "Little")
}
哪个更简单,只提供大括号。
所以,我的问题是,如何重写
var personsArr2 = (0...5).map{ _ in
Person(firstName: "Bobby", lastName: "Little")
}
如何理解初始建议的代码?感谢。
答案 0 :(得分:2)
您提供的建议不正确。应该展示的(也可能是)它是:
personArr3.(0...5).map(transform: (Int) throws -> T)
意味着map
除外的转换函数只接受一个Int
参数,并返回T
。此T
确定map
结果的结果,该结果为[T]
(a.k.a。Array<T>
)。
可选地,此转换函数可能throw
出错。如果确实如此,那么map
函数会rethrow
它,它会冒泡到你可以处理的地方