在C, C++, Java 等语言中,都没有引入参数标签的概念。Swift 引进参数标签(Argument Label)这个概念,主要应用在调用函数的情况,使得函数的实参与真实命名相关联,更加容易理解实参的意义。
什么是参数标签,什么是参数名 (Parameter Name)
参数标签在调用函数是使用,来指定当前实参传递给哪一个形参,因为有参数标签的存在,实在的顺序是可以随意改变的,这与其他语言是有区别的地方。
参数名只在函数内部使用,用来获取形参的值。
参数标签是允许缺省的,此时参数名承担了参数标签的任务,即调用函数时把参数名当做参数标签联系形参与实参。
func someFunction(argumentLabel parameterName0: Int,parameterName1: Int) {
// 在函数体内,使用parameterName引用参数值
// argementLabel不会出现在函数体内
// 此时parameterName既是参数名也是参数标签
}
func greet(person:String, from hometown:String) ->String{
return"Hello\(person)!Glad you could visit from\(hometown)."
}
print(greet(person:"Bill", from:"Cupertino"))
// 输出 "Hello Bill!Glad you could visit from Cupertino."
省略参数标签
若想回归Java的写法,在调用时省略参数标签,那么在参数名前面加下划线( _ ) 来达到此目的。
func someFunction( _ firstParameterName: Int, secondParameterName:Int) {
// 在函数体内还是正常用参数名在引用参数
}
someFunction(1, secondParameterName: 2)
假若在函数声明时未省略参数标签,那么在调用的时候一定要添加参数标签指定参数,否则报错。
网友评论