Objective-C中的函数标签也是函数参数的一部分,它避免了参数过多的情况下分不清每个参数的含义。Objective-C的优秀特性被Swift继承下来了。
Swift可以为每个函数的参数指定一个名字,在函数被调用时,可以通过该标签来获取对应参数的具体含义。
fun showInfo(sName name:String,sAge age:Int){
}
showInfo(sName: "weichuang",sAge:22)
//sName表示在外部调用该函数时,需要显式地写出该参数的标签(命名)。
2.类中方法的参数命名规则
虽然在类的内部定义方法的方式和定义函数的方式相同,但是使用参数名称的规则却有所区别。
func sayTo(target:String,withWords:String){
}
me.sayTo("Ricky",withWords:"Hello,World")//me是sayTo所在类的对象
以上的规则可以理解为:假如没有显式指定外部参数名,从第二个参数开始,所有的参数名称的前面相当于有一个”#”号,”#”用来表示局部参数名和外部参数为同一名称。
当然,如果方法定义中显式制定了外部参数名的话,则在调用时,必须使用指定的外部参数名。
观察以下构造方法的实例:
init(name:String,age:Int){ } init(name:String){ } var p=Human(name:"chuang",age:22) var t=Human(name:"jie")
可以发现,被隐式调用的构造方法中的参数名称”name”和”age”在作为内部参数的同时也充当了外部参数。
在实例方法中,默认能充当外部参数名的参数是从第二个参数开始的,但是构造方法却是从第一个参数开始的。为什么会是这样呢?因为构造方法名称都是init,而实例方法本身往往就能说明第一个参数的意义。