lazyval (1) 썸네일형 리스트형 [Scala] lazy val을 써야하는 경우 val는 변수가 선언될 당시 실행되고 lazy val은 해당 변수에 접근할 때 실행된다. def factorial(n:Int):Unit = { val cc = bb(n,1) def bb(n:Int, acc:Int): Int = { if (true) 5 else 3 } } 다음과 같이 선언하면 forward reference extends over definition of value cc 이런 에러 메시지를 볼 수 있다. val cc를 lazy val cc로 교체하면 컴파일은 성공한다. def factorial(n:Int):Unit = { lazy val cc = bb(n,1) def bb(n:Int, acc:Int): Int = { if (true) 5 else 3 } } 그렇다면 다음과 같은 코드는 어.. 이전 1 다음