Scala(x不是该类的成员)

时间:2014-09-07 21:56:09

标签: scala int boolean

所以有一个有三个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的成员。

帮助?

1 个答案:

答案 0 :(得分:3)

修改:您应该将Blue.x替换为this.x或仅xBlue.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