我刚开始阅读Swift的Learn Essentials
func greet(name: String, day: String) -> String {
return "Hello \(name), today is \(day)."
}
要调用的语法
greet("Anna",day : "Tuesday")
我的问题:
如果它与名称匹配,如果我在调用函数时交换值,则代码失败
func greet(name: String, day: String,time: String) -> String
{
return "Hello \(name), today is \(day), \(time)."
}
greet("Anna", time: "one forty",day: "Tuesday")
函数参数机制如何在内部工作?
答案 0 :(得分:1)
正如您在评论中的链接中所发现的那样,命名参数有一些优点:它们使代码更清晰。
然而,在Objective-C中,从一开始就已经命名了参数。更确切地说,它们类似于命名参数,因为名称是方法名称(选择器)的一部分。在您的示例中,Objective-C中的方法是:greetName:day:
。这与greetName:day:time:
不同。至少Swift需要具备处理它的能力。
发送参数名称的真正需要是什么
名称参数使代码更具可读性。可以有许多方法具有不同的参数名称。
在复制函数
中的值之前,它是否与名称匹配
是。它从调用中的参数名称构建函数名称,并尝试将其与潜在方法的参数名称匹配。
如果它与名称匹配,如果我在调用函数时交换值,则代码失败
在Objective-C和Swift中,命名参数的顺序很重要。您可以使用两种不同的方法来互换名称。 greetName:day:time:
与greetName:time:day:
不同。