无法将类型“()”的 return 表达式转换为 return 类型 'Double'

Cannot convert return expression of type '()' to return type 'Double'

什么是“()”类型的表达式?

而且这个版本不正确

var compteEnBanque: Double = 999.5


func shopping(_ new: Double) -> Double {
    guard compteEnBanque >= new else {
        return compteEnBanque
    }
    return compteEnBanque -= new
}

错误:无法将类型“()”的 return 表达式转换为 return 类型 'Double'

但这个版本是正确的

    var compteEnBanque: Double = 999.5


func shopping(_ new: Double) -> Double {
    guard compteEnBanque >= new else {
        return compteEnBanque
    }
    return compteEnBanque - new
}

抱歉,我不是英语母语人士,感谢您的帮助。

() 是 Swift 中的空元组 - 这也是 Void.

-= 运算符 returns Void,因为它改变了左侧操作数而不是 return 其新值。

您应该首先执行 -= 然后 return 左侧操作数的值来更新它然后 return 它的新值。

var compteEnBanque: Double = 999.5


func shopping(_ new: Double) -> Double {
    guard compteEnBanque >= new else {
        return compteEnBanque
    }
    compteEnBanque -= new
    return compteEnBanque
}