什么是新的" for"," at"," in" Swift3函数声明中的关键字?

时间:2016-08-05 09:44:48

标签: swift xcode swift3

我正在通过初学者工作'关于Swift的教程,用Swift 2编写。

它包含类似(随机示例)

的代码
override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {

Swift 3(我使用XCode 8 Beta)已经改变了,IDE有助于将其转换为新的(漂亮的!)符号:

override func prepare(for segue: UIStoryboardSegue, sender: AnyObject?) {

让我感到困惑的是" for" in" for segue:"。我明白为什么会这样,但它在语法上是一个什么样的元素?参数是forfor segue还是segue

仅仅是装饰 - 一个没有任何意义的元素,但帮助开发者理解上下文?它还有什么用吗?这个概念有名字吗?我可以用自己的方法使用它吗?

我在""中看到了同样的事情。和" at"。

1 个答案:

答案 0 :(得分:10)

语法允许您将参数标记两次 - 一次用于函数(参数名称),一次用于调用(参数标签)。默认情况下,这两个将是相同的(如示例中的sender),但它们在调用站点使函数更具可读性时会有所不同:

prepare(for: aSegue, sender: something)

比句子更具可读性:

prepare(segue: aSegue, sender: something)

听起来像你正在准备segue,而不是准备 segue。

for在函数内部使用是一个可怕的名称来引用segue,因此如果需要,你可以使用不同的名称。

这个想法是为了满足呼叫站点可读性的有时相互冲突的目标以及实现中合理的命名。

定义函数时,如果要使用单独的参数标签和参数名称,则首先指定参数标签,然后指定参数名称:

func sayHello(to name: String) {
    print("Hello " + name)
}

sayHello(to: "Pekka")

to仅在调用函数时具有相关性。函数内部使用name