gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 13:04:42 29 4
gpt4 key购买 nike

我正在学习用 Swift 2 编写的 Swift 初学者教程。

它包含类似的代码(随机示例)

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

这在 Swift 3 中发生了变化(我正在使用 XCode 8 Beta),IDE 会帮助将其转换为新的(漂亮!)符号:

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

这里让我困惑的是“for segue:”中的“for”。我明白它为什么在那里,但它在语法上是一个什么样的元素?参数名称是 forfor segue 还是 segue

它是否仅仅是装饰——一个没有任何意义但可以帮助开发人员理解上下文的元素?它还有其他作用吗?这个概念有名字吗?我可以在自己的方法中使用它吗?

我看到“in”和“at”也发生了同样的情况。

最佳答案

该语法允许您为参数添加两次标签 - 一次在函数内使用(参数名称),一次在调用时使用(参数标签)。默认情况下,这两者是相同的(就像示例中的 sender 一样),但当它使函数在调用站点更具可读性时,它们会有所不同:

prepare(for: aSegue, sender: something)

作为句子比以下内容更具可读性:

prepare(segue: aSegue, sender: something)

这听起来像是您正在准备segue,而不是为segue 做准备。

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

这个想法是为了满足调用站点的可读性和实现中的合理命名这两个有时相互冲突的目标。

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

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

sayHello(to: "Pekka")

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

关于swift - Swift3 函数声明中新的 "for"、 "at"、 "in"关键字是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39539393/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com