scala 11.8에서 스코프를 사용하면 잘 동작한다.



~$ scala

Welcome to Scala 2.11.8 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_40).

Type in expressions for evaluation. Or try :help.


scala> val a = 1

a: Int = 1


scala> {

     | val a = 2

     | }


scala> println(a)

1



그러나, 이를 한 줄에 같이 쓰면 에러로 표현한다. 

scala> val a = 1 { val a = 2 }

<console>:11: error: Int(1) does not take parameters

       val a = 1 { val a = 2 }



또한, Intellij IDEA의 스칼라 컴파일러를 사용하면 에러가 발생한다


val a = 1
{
val a = 2
}



Int(1) does not take parameter 라는 에러가 발생한다. Integer 클래스에서 {로 시작하는 파라미터가 없다고 발생한다.

Error:(5, 5) Int(1) does not take parameters

    {

    ^




한 줄을 추가하면 정상적으로 동작한다. warning이 발생하지만, 잘 동작한다. Warning:(6, 5) a pure expression does nothing in statement position; you may be omitting necessary parentheses

    {

    ^

val a = 1

{
val a = 2
} println(a)


Posted by '김용환'
,