'双'不可转换为()

时间:2015-03-03 02:26:10

标签: swift

我自己教自己Swift,我在return的{​​{1}}收到错误。它说func calculateTaxes。我的问题是Double is not convertible to ()是什么意思?

()

2 个答案:

答案 0 :(得分:3)

您忘了指定返回类型(Double):

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

答案 1 :(得分:0)

什么()实际上意味着是Void,在这种情况下它是函数的返回值(即什么都没有)。没有指定返回值的函数的返回值为void,这就是

的原因
func printHelloWorld() {
    println("Hello World")
}

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

你永远不应该使用后一种形式,因为它不会给代码带来额外的价值,并使函数声明更加模糊。

在你的情况下,问题是函数的返回值现在是Void,即使它应该是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

我还建议阅读整本The Swift Programming Language一书,因为它提供了很多有关该语言的详细信息。