2016-02-17 55 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" 
} 

,意思是「當我把這個功能我不想寫東西,但我想用的東西里面的函數指已通過的值。

相關問題