理解swift 3语法

时间:2017-07-17 17:57:50

标签: swift swift3

很多时候遇到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")
    }

如何理解初始建议的代码?感谢。

1 个答案:

答案 0 :(得分:2)

您提供的建议不正确。应该展示的(也可能是)它是:

personArr3.(0...5).map(transform: (Int) throws -> T)

意味着map除外的转换函数只接受一个Int参数,并返回T。此T确定map结果的结果,该结果为[T](a.k.a。Array<T>)。

可选地,此转换函数可能throw出错。如果确实如此,那么map函数会rethrow它,它会冒泡到你可以处理的地方