【问题标题】:Odd xcode error when calling defined func in Swift在 Swift 中调用定义的函数时出现奇怪的 xcode 错误
【发布时间】:2014-06-24 03:32:59
【问题描述】:

我在创建的新项目的 .swift 文件中定义了以下函数:

func createCircle(xPos: Int, yPos: Int) {
    // do code here
}

由于某种原因,当我尝试使用以下代码调用它时,xcode 显示一个错误,指出“在调用中缺少参数标签 'yPos:'”。

createCircle(100, 100)

奇怪的是它处理 yPos 与 xPos 不同 - 如果我包含 xPos:在调用函数中它会突出显示该行并显示“无法将表达式的类型 '$Tf' 转换为类型 'IntegerLiteralConvertable'”。因此,为了调用上述函数,我最终得到了以下结果:

createCircle(100, yPos: 100)

我是否遗漏了一些明显的东西,或者这是一个 xcode 测试版错误?

【问题讨论】:

  • 这是类内部的方法还是外部文件中单独存在的函数?
  • 是的,谢谢你成功了。

标签: ios xcode swift


【解决方案1】:

根据 Swift 文档

部分 - 方法 - 方法的本地和外部参数名称

"具体来说,Swift 给方法中的第一个参数名称 a 默认为本地参数名称,并给出第二个和后续 默认情况下,参数名称包括本地参数名称和外部参数名称。"

从您的错误来看,您似乎使用的是方法而不是函数。您不需要为第一个参数提供名称,但您必须为后续参数提供名称,但可以使用 _(下划线字符)更改此行为。

class MyCircle {
    var xPos: Double = 0.0;
    var yPos: Double = 0.0;

    func createCircle(x: Double, _ y: Double) {
        // insert create circle logic here.
    }
}

var cir = MyCircle();
cir.createCircle(100, 100);

通过为后续参数使用下划线,您在调用方法时不必为它们提供标签。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-11
    • 1970-01-01
    • 2021-04-04
    • 2020-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多