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

标签 swift

我从苹果开发者网站复制了以下代码片段。

  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"))
    ^~~~~~~
    

我是 Swift 编程的新手,我有 Java 背景。所以我在理解上遇到了问题。

如果我有任何误解,请指导我。

最佳答案

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

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

注意,day 是参数 day 的名称。

现在,您可以将其用作,

print(greet(day : "Sunday"))

关于Swift:调用函数似乎令人困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33340661/

相关文章:

ios - 旋转设备时约束不起作用

ios - 在 Swift 中使用 SDWebImage 问题

ios - 如何播放阵列中的特定声音?

ios - 测试应用内购买(IAP)-需要帮助来清除交易队列

arrays - 数组到 NSOrderedSet 将列表的大小更改为 1

swift - 有没有办法在 SwiftUI 中为 TextField 设置 inputView?

swift - 解析 mLabs 和 Heroku 的迁移错误

swift - 什么是 objc_msgSend,为什么它会占用这么多处理时间?

swift - 根据文本内容调整textview的大小(swift)

ios决定是否在客户端代码的某些条件下静音我的远程通知,而不是设置内容可用