为什么在swift中调用函数时需要参数标签
我刚刚开始阅读Swift的学习要领为什么在swift中调用函数时需要参数标签,swift,Swift,我刚刚开始阅读Swift的学习要领 func greet(name: String, day: String) -> String { return "Hello \(name), today is \(day)." } 要调用的语法 greet("Anna",day : "Tuesday") 我的问题是: 发送参数名称的真正需要是什么 在复制函数中的值之前,它是否与名称匹配 如果它与名称匹配,如果在调用函数时交换值,下面的代码将失败 func greet(name: St
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")
函数参数机制在内部是如何工作的?正如您在注释中的链接中所发现的,命名参数有一些优点:它们使代码更清晰 然而,在Objective-C中,从一开始就有命名参数。老实说,它们类似于命名参数,因为名称是方法名(选择器)的一部分。在您的示例中,Objective-C中的方法是:
greetName:day:
。这与greetName:day:time:
不同。至少斯威夫特需要处理这一问题的能力
发送参数名称的真正需要是什么
名称参数使代码更具可读性。可以有许多具有不同参数名称的方法
在复制函数中的值之前,它是否与名称匹配
对。它从调用中的参数名生成函数名,并尝试将其与潜在方法的参数名匹配
如果它与名称匹配,如果在调用函数时交换值,下面的代码将失败
func greet(name: String, day: String,time: String) -> String
{
return "Hello \(name), today is \(day), \(time)."
}
greet("Anna", time: "one forty",day: "Tuesday")
在Objective-C和Swift中,命名参数的顺序很重要。您可以有两个名称互换的不同方法
greetName:day:time:
不同于greetName:time:day:
在内部,编译器为函数生成唯一的名称。看见