【发布时间】:2017-09-02 02:43:53
【问题描述】:
var a11: Int = 0
var a12: Int = 0
var a21: Int = 0
var a22: Int = 0
var valueDeterminant = a11 * a12 * a21 + a22
func calculateDeterminant(a11: Int, a12: Int, a21: Int, a22: Int) -> Int {
return valueDeterminant
}
if calculateDeterminant == 0 {
print("The trasformation is irreversable, due to the fact that the determinant is \(calculateDeterminant)")
} else if calculateDeterminant == 1 {
print("The determinant is\(calculateDeterminant) \nThe trasformation is reverable, and it keeps the area")
} else {
print("The determinant is \(calculateDeterminant) \nThe transformation is reversable")
}
错误表示二元运算符 == 不能用于 (Int, Int, Int, Int) 的类型。为什么?我该如何解决这个问题? 另外,如果我将返回值更改为 Bool,则会出现另一个错误,说我不能放入返回 Bool 值的 Int 值。
【问题讨论】:
-
你在比较不同的东西,一个数组到一个单一的值,你为什么认为这会起作用
-
calculateDeterminant是一个函数——你无法将它与0进行比较。您可能打算使用适当的a11、a12等值调用函数(然后更改实现,使其实际使用参数而不是valueDeterminant) . -
或将 valueDeterminant 设为计算属性
var valueDeterminant: Int { return a11 * a12 * a21 + a22 }并调用if valueDeterminant == 0 { -
您在提供的代码中还有一些其他的语法错误。 (1) 你不能以你的方式声明 valueDeterminant - 这不是“自上而下”的编程。 (2) 调用calculateDeterminant时,需要传入4个named参数——a11、a12、a21、a22。现在,这些错误将导致您的代码甚至无法构建!
-
valueDeterminant@dfd 的声明有什么问题?
标签: swift int binary-operators