2016-02-17 54 views

回答

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 
} 

只是一个供参考,使用tab完成,而不是写出来的功能。 Xcode会让你知道所有带占位符的函数变量,所以你可以键入它们。

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" 
} 

,意思是“当我把这个功能我不想写东西,但我想用的东西里面的函数指已通过的值。

相关问题