我在正在创建的新项目中的.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 beta bug?
答案 0 :(得分:0)
根据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);
通过对后续参数使用下划线,您不必在调用方法时为它们提供标签。