函数的语法错误 - 缺少参数

时间:2015-02-10 06:57:37

标签: ios iphone swift xcode6

我正在学习苹果书。在xcode中编写代码时,我收到的错误是参数缺少函数。

根据Apple代码应

func halfOpenRangeLength(start: Int, end: Int) -> Int {
            return end - start
        }

调用此函数时:

println(halfOpenRangeLength(1, 10)) // According to Apple.

但是当我输入上面的行时,它会说插入结束

所以这个陈述改为

println(halfOpenRangeLength(1, end:10))

为什么会这样?

由于

4 个答案:

答案 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根据这些规则为参数提供自动外部名称:

  • 全局函数:没有自动外部名称
  • class / struct / enum methods :所有参数的自动外部名称,但第一个
  • 初始值设定项所有参数的自动外部名称

那就是说,如果它在你的情况下不起作用,要求你指定第二个参数的外部名称,那么它可能意味着你已经将该函数声明为类或结构方法,而不是全球功能。