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)
'scala' 카테고리의 다른 글
[scala] package object 예제 (0) | 2016.09.07 |
---|---|
[scala] for .. yield 예시 (0) | 2016.04.05 |
[scala] jad로 디컴파일(decompile)하기, javap, scalac 사용하기 (0) | 2016.03.26 |
[scala] 암시적 타입 변환(implicit type conversion) 예시 (0) | 2016.03.25 |
[scala] 싱글톤 객체, 독립 객체, 동반 클래스 (0) | 2016.03.24 |