所以有一个有三个int值的对象。让我们将此对象称为蓝色。我试图创建一个布尔方法,如果蓝色的Int值有效,则返回true。每个Int都有不同的限制。此方法称为isBlueValid
例如,蓝色由Ints x,y,z组成。 x的值需要在10到20之间,而y和z的值需要在30到50之间。
所以这是我的代码示例
case class Blue(x : Int, y : Int, z : Int){
def isValidBlue(blue: Blue) : Boolean = {
if(Blue.x > ... && Blue.x <....... &&Blue.y <...............)
true
else
false
但是每当我尝试运行该方法时,它一直说x不是Blue的成员而y不是Blue的成员而z不是Blue的成员。
帮助?
答案 0 :(得分:3)
修改:您应该将Blue.x
替换为this.x
或仅x
。 Blue.x
试图从案例类的伴随对象调用方法或val,而不是this
实例。
似乎就像你想要这样的东西:
case class Blue(x: Int, y: Int, z: Int) {
def isValid: Boolean = ((x < 21 && x > 9) && (y > 29 && y < 51) && (z > 0)) // filled in z condition with whatever
}
返回if(..) true else false
时 Boolean
是多余的,因为if
条件返回相同的Boolean
值。
scala> val test = Blue(1,2,3)
scala> test.isValid
res0: Boolean = false
scala> val test = Blue(10,30,3)
scala> test.isValid
res1: Boolean = true