Swift:调用函数似乎令人困惑

时间:2015-10-26 07:37:36

标签: swift

我从apple的开发者网站复制了以下代码段。

  1. 以下代码按预期运行:

    func greet(day: String) -> String {
        return "Hello Umang, today is \(day)."
    }
    print(greet("Sunday"))
    
  2. 在运行以下代码时显示错误

    func greet(day: String) -> String {
         return "Hello Umang, today is \(day)."
    }
    print(greet(day : "Sunday"))
    

    错误:

    <stdin>:7:12: error: extraneous argument label 'day:' in call
    print(greet(day : "Sunday"))
    ^~~~~~~
    
  3. 我是Swift编程的新手,我有Java背景。所以我在理解上遇到了问题。

    如果我误解了任何内容,请指导我。

1 个答案:

答案 0 :(得分:4)

这是因为方法中的第一个参数被视为未命名参数。因此,您只能使用 greet(“Sunday”),但如果您希望第一个参数是命名参数,则可以使用以下语法。

func greet(day day: String) -> String {
     return "Hello Umang, today is \(day)."
}

注意,日期是参数日的名称。

现在,您可以将其用作

print(greet(day : "Sunday"))