如何将参数传递给Swift中的函数?在电话中缺少参数

时间:2016-02-17 19:48:22

标签: ios xcode swift

不接受Swift功能参数。缺少论点?

Calculate(theA, theB) //error: Missing argument label 'sideB:' in call

func Calculate(sideA: Int, sideB: Int) -> Int {
    var ans = sideA + sideB
    return ans;
}

2 个答案:

答案 0 :(得分:2)

您在函数调用中缺少sideB:。我不想重写你的代码(因为你发布了一张图片)但是这里是工作函数调用。

func calcButton(sender: AnyObject) {
    let a: Int = 10
    let b: Int = 11

    calculate(a, sideB: b) //<-- Missing it here
}

func calculate(sideA: Int, sideB: Int) -> Int {
    let a = sideA + sideB
    return a
}

您可能还希望在函数调用中同时拥有这两个变量,以便您可以这样做:

func calcButton(sender: AnyObject) {
    let a: Int = 10
    let b: Int = 11

    calculate(sideA: a, sideB: b)
}

func calculate(sideA A: Int, sideB B: Int) -> Int {
    return A + B
}

仅仅是一个FYI,使用制表符完成而不是写出功能。 Xcode将通过占位符让您了解所有函数变量,以便您可以输入它们。

答案 1 :(得分:0)

你错过了swift 3中的sideB param名称第一个参数是可选的,但是第二个参数是强制性的,那里是_那是一个下划线。它改变了调用方法的方式。为了说明这一点,这是一个非常简单的功能:

func doStuff(thing: String) {
    // do stuff with "thing"
}

它是空的,因为它的内容无关紧要。相反,让我们关注它的调用方式。现在,它被称为:

doStuff(thing: "Hello")

调用doStuff()函数时,需要编写thing参数的名称。这是Swift的一个功能,有助于使您的代码更易于阅读。但是,有时候,为第一个参数设置名称并不合理,通常是因为它内置在方法名称中。

当发生这种情况时,您使用下划线字符:

func doStuff(_ thing: String) {
    // do stuff with "thing"
}

这意味着“当我调用此函数时我不想写东西,但在函数内部我想用东西来引用传入的值。