我正在学习苹果书。在xcode中编写代码时,我收到的错误是参数缺少函数。
根据Apple代码应
func halfOpenRangeLength(start: Int, end: Int) -> Int {
return end - start
}
调用此函数时:
println(halfOpenRangeLength(1, 10)) // According to Apple.
但是当我输入上面的行时,它会说插入结束
所以这个陈述改为
println(halfOpenRangeLength(1, end:10))
为什么会这样?
由于
答案 0 :(得分:0)
使用此替代我已经检查过它并且可以正常工作
func halfOpenRangeLength(start: Int, end: Int) -> Int {
return end - start
}
println("\(halfOpenRangeLength(1, 10))")
答案 1 :(得分:0)
如果您不希望它需要参数名称,您只需要在它前面添加_并且它不会再为您带来任何错误:
vv
func halfOpenRangeLength(start: Int, _ end: Int) -> Int {
答案 2 :(得分:0)
Swift始终为第一个参数提供本地参数名称,而不提供外部参数名称。这意味着您在使用该方法时不需要调用它。
之后,每个参数都给出本地和外部参数名称。这是为了清楚起见。正如Leonardo所说,您可以通过在参数名称前放置下划线(_)来避免必须命名第二个参数。
如果您愿意,还可以通过在参数名称前放置#标签(#)来为第一个变量提供外部参数名称。
您可以在Apple的Swift文档中查看有关此内容的更多信息:https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Methods.html
答案 3 :(得分:0)
Swift根据这些规则为参数提供自动外部名称:
那就是说,如果它在你的情况下不起作用,要求你指定第二个参数的外部名称,那么它可能意味着你已经将该函数声明为类或结构方法,而不是全球功能。