2014-09-07 5 views
0

그래서 int 값이 3 개인 객체가 있습니다. 이 객체를 청색으로합니다. 파란색의 Int 값이 유효한 경우 true를 반환하는 부울 메서드를 만들려고합니다. 각 Int에는 다른 제한이 있습니다. 이 메서드는 isBlueValid라고합니다.스칼라 (x는 클래스의 멤버가 아닙니다)

예를 들어 파란색은 Ints x, y, z로 구성됩니다. x의 값은 y 및 z의 값이 그래서 여기 내 코드 예

case class Blue(x : Int, y : Int, z : Int){ 
     def isValidBlue(blue: Blue) : Boolean = { 
      if(Blue.x > ... && Blue.x <....... &&Blue.y <...............) 
        true 
      else 
        false 

하지만 시도마다이다

30 내지 50이 될 필요가있는 동안 (10, 20) 사이에 있어야 x가 Blue의 멤버가 아니며 y가 Blue의 멤버가 아니며 z가 Blue의 멤버가 아니라고 계속 말한 메서드를 실행합니다.

도움 말?

+0

문제를 보여주는보다 완벽한 예제를 게시 할 수 있습니까? 특히 해당 함수와 클래스. –

+0

우리가 추측하도록하기보다는 코드를 게시하십시오. – Ryan

+2

당신은 불필요합니다. 'if () true else false'는' '과 같습니다. – bmaderbacher

답변

3

: Blue.xthis.x 또는 x으로 대체해야합니다. Blue.x은 사례 클래스의 동반자 개체에서 메서드 또는 val을 호출하려고 시도하지만 this 인스턴스는 호출하지 않습니다. if 조건이 동일 Boolean 값을 반환 때문에, Boolean을 반환 할 때

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이 중복 : 당신이 뭔가를 원하는 것


을 보인다.

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 
+0

인수가 충분하지 않다는 오류가 발생했지만 인수를 취한 후에는 완벽하게 작동합니다. 감사! – user3312944

관련 문제