【发布时间】:2017-12-11 23:39:47
【问题描述】:
Apple 的书“Swift 编程语言 (Swift 3.1)” 陈述如下:
与函数和方法参数一样,初始化参数既可以有一个在初始化器主体中使用的参数名称,也可以有一个在调用初始化器时使用的参数标签。
但是,初始化器在括号前没有函数和方法那样的标识函数名称。因此,初始化器参数的名称和类型在确定应该调用哪个初始化器时起着特别重要的作用。 因此,如果您不提供,Swift 会为初始化程序中的每个参数提供一个自动参数标签。
我不明白最后一句话,因为在参数名称/标签方面,我没有注意到函数/方法和初始化程序之间的任何区别。如何为初始化程序自动提供参数标签?
【问题讨论】:
-
至少对我来说,这听起来像是 Swift 2.2 语言指南的保留,他们从未删除/更新过。在 Swift 2 中,方法和顶级函数没有为第一个参数提供自动参数标签,如果需要,您必须显式指定它(但初始化程序为每个参数提供)。但无论如何,措辞可能会更清晰。
-
这也是我最初的想法 :) 请看看下面 Rob Napier 回答下的 cmets,我们可能误解了他们的话。
-
我不相信他们在谈论成员初始化器,因为他们没有明确提到它,并且该部分在指南的后面部分。
-
也许你是对的,我还没有:)
标签: swift initializer