2015-03-03 68 views
-1

我自學自我斯威夫特,並在returnfunc calculateTaxes我得到一個錯誤。它表示Double is not convertible to()。我的問題是()是什麼意思?'雙'不可兌換爲()

struct Expense { 
    let description: String 
    var amount: Double = 0.0 
    var percentage: Double = 15.0 
    var taxOwed: Double 

init(description: String, amount: Double) { 
    self.description = description 
    self.amount = amount 
} 

func string1() -> String { 
    return "I spent money on \(description) in the amount of $\(amount)" 
} 

func calculateTaxes(percentage: Double) { 
    var taxOwed = (self.amount*(percentage/100)) 
    return taxOwed 
} 
} 
+0

()表示方法 – 2015-03-03 02:27:48

+0

忘記指定返回類型雙 – 2015-03-03 02:29:24

回答

3

你忘了指定的返回類型(雙人間):

func calculateTaxes(percentage: Double)->Double { 
    return (amount*(percentage/100)) 
} 
+0

完美。謝謝。 – 2015-03-03 02:41:48

+0

不客氣 – 2015-03-03 02:42:07

0

什麼()實際上意味着是無效的,在這種情況下它是函數的返回值(即無)。沒有指定返回值的函數具有void返回值,這就是爲什麼

func printHelloWorld() { 
    println("Hello World") 
} 

是相同

func printHelloWorld() ->() { // Not good. 
    println("Hello World") 
} 

你不應該使用後一種形式,因爲它不提供任何額外的價值的代碼,使函數聲明更曖昧。

在你的情況,問題是函數的返回值現在是無效的,即使它應該是Double(taxOwed是一個Double)。

func calculateTaxes(percentage: Double) -> Double { 
    var taxOwed = (self.amount*(percentage/100)) 
    return taxOwed 
} 

有關的功能和它們的返回值的更多信息,請閱讀:https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Functions.html

我也建議你閱讀整個雨燕編程花括號之前 - 您放置修復「>雙擊」語言書籍,因爲它詳細地提供了關於該語言的許多良好信息。