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

syntax error for function-- missing parameter

我正在从苹果书上学习swift。在 xcode 中编写代码时,出现参数缺少表单函数的错误。

根据 Apple 代码应该是

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

调用此函数时:

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

但是当我在上面输入时,它说插入 end

所以这个语句变成了

println(halfOpenRangeLength(1, end:10))

为什么会这样?

谢谢

改用这个我已经检查过它有效

func halfOpenRangeLength(start: Int, end: Int) -> Int {
    return end - start
}
println("\(halfOpenRangeLength(1, 10))")

如果您不希望它需要参数名称,您只需要在它前面添加 _ 就不会再打扰您了:

                                    vv
func halfOpenRangeLength(start: Int, _ end: Int) -> Int {

Swift 总是给第一个参数一个本地参数名,没有外部参数名。这意味着您不需要在使用该方法时调用它。

之后,每个参数都被赋予了本地和外部参数名称。这是为了清楚起见。正如 Leonardo 所说,您可以通过在参数名称前放置下划线 (_) 来避免必须命名第二个参数。

如果您愿意,还可以通过在参数名称前面放置井号 (#) 来为第一个变量提供外部参数名称。

您可以在 Apple 的 Swift 文档中查看更多相关信息:https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Methods.html

Swift 按照以下规则为参数提供自动外部名称:

  • 全局函数: 没有自动外部名称
  • class/struct/enum 方法:所有参数的自动外部名称,但第一个
  • 初始化程序所有参数的自动外部名称

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