我是Swift的新手,我已经阅读了Swift Function Documentation,据我所知,必须以这种方式构建一个函数:
func funcName(param1:Type, param2:Type) -> Return {
//Whatever istructions
}
必须这样称呼:
funcName(1, 2);
非常简单,这里来自最初的Apple文档:
func halfOpenRangeLength(start: Int, end: Int) -> Int {
return end - start
}
println(halfOpenRangeLength(1, 10))
// prints "9"
因此,在调用halfOpenRangeLength
函数的最后一个示例中,我不必指定参数的名称(start
和end
)。
所以我在XCode中完成了我的功能:
func assegnaRisposte(uno:String, due:String, tre:String, quattro:String){
button1.setTitle(uno, forState: UIControlState.Normal)
button2.setTitle(due, forState: UIControlState.Normal)
button3.setTitle(tre, forState: UIControlState.Normal)
button4.setTitle(quattro, forState: UIControlState.Normal)
}
但是当我这样称呼它时,我收到错误Missing argument lables 'due:tre:quattro:' in call
:
assegnaRisposte("Davide", "Andrea", "Sergio", "Roberto")
XCode修复程序强迫我这样做:
assegnaRisposte("Davide", due: tre: "Andrea", "Sergio", quattro: "Roberto")
所以我强迫要放置3个参数名称。如果我放置第一个参数(uno)会抛出错误,所以我必须只放due
,tre
和quattro
据我所知,我可以指定参数名称在参数前放置一个破折号,而且,我没有强制使用它们。
有人可以解释一下这是为什么吗?
答案 0 :(得分:2)
Swift在命名方面的功能和方法之间存在差异,基本上是:
<强>更新强>
如果您不想使用外部参数名称,则应声明方法,如:
B pb = (B)Enhancer.create(B.class, new HelloInvocationHandler());
pb.m1();
答案 1 :(得分:0)
从Apple的The Swift Programming Language一书中查看本节:
Local and External Parameter Names for Methods
本地名称和外部名称的默认行为是不同的 用于功能和方法。
Swift在方法中给出了第一个参数名称本地参数 默认情况下命名,并提供第二个和后续参数名称 默认情况下为本地和外部参数名称。