我是Swift编程的新手.我无法理解以下代码.在以下代码中调用
sampleFunc方法:我不必在第二个参数中键入lastName.
class Counter {
var count: Int = 0
func incrementBy(amount: Int, numberOfTimes : Int) {
count += amount * numberOfTimes
}
}
var counter = Counter()
counter.incrementBy(1, numberOfTimes : 3)
print(counter.count)
func sampleFunc(firstName : String, lastName : String){
print("Hello \(firstName) \(lastName)")
}
sampleFunc("Abel", "Rosnoski")
Run Code Online (Sandbox Code Playgroud)为什么会有细微差别?请解释.
当封装在类(或结构或枚举)中时,方法的第一个参数名称不包含在外部,而所有后面的参数名称都包含在外部.不包含在外部的参数,在调用方法时不必为它们指定名称.但是对于外部包含的那些你必须这样做.
您的方法incrementBy(amount: Int, numberOfTimes : Int)封装在您的类中,这就是为什么第二个参数自动外部包含的原因.这意味着您必须numberOfTimes在为参数提供值之前键入.这就是为什么你必须这样称呼它:
counter.incrementBy(1, numberOfTimes : 3)
Run Code Online (Sandbox Code Playgroud)
你的第二种方法func sampleFunc(firstName : String, lastName : String)没有包含在你的课程中.这就是为什么您不必为其参数提供名称的原因.这就是为什么你可以这样称呼它:
sampleFunc("Abel", "Rosnoski")
Run Code Online (Sandbox Code Playgroud)
你可以在这里阅读更多细节.
编辑:正如User3441734所指出的那样(并且我引用)"有一个例外.如果外部名称未指定为_,则带参数的init总是需要命名参数".您可以在此处详细了解自定义初始化.
| 归档时间: |
|
| 查看次数: |
404 次 |
| 最近记录: |