在Swift中,调用第一个参数时会使用参数名称。为什么不使用名字?
使用Swift手册的变体;
var count2: Int = 0
func incrementBy2(amount: Int, numberOfTimes times: Int) {
count2 += amount * times}
这将起作用;
incrementBy2(2, numberOfTimes: 7)
但这给了我“调用中的外部参数标签'amount'”
incrementBy2(amount: 2, numberOfTimes: 7)
是有原因吗,还是只是“按现状”之一?
这是遵循Objective-C习惯的惯例,第一个参数的名称与方法名称结合在一起。这是一个例子:
- (void)incrementByAmount:(NSInteger)amount
numberOfTimes:(NSInteger)times
{
// stuff
}
您可以像这样调用方法:
[self incrementByAmount:2 numberOfTimes:7];
通过将参数的名称合并到方法的名称中,可以使阅读更加自然。在Swift中,您可以通过以下方法实现相同目的:
func incrementByAmount(amount: Int, numberOfTimes: Int) {
// same stuff in Swift
}
并调用如下方法:
incrementByAmount(2, numberOfTimes: 7)
如果您不想使用此约定,Swift可以使您更加明确,并定义单独的内部和外部参数名称,如下所示:
func incrementByAmount(incrementBy amount: Int, numberOfTimes: Int) {
// same stuff in Swift
// access `amount` at this scope.
}
您可以这样调用方法:
incrementByAmount(incrementBy: 2, numberOfTimes: 7)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句