Stream 객체를 사용할 때 Stream.empty에 대해서 패턴 매칭을 사용할 수 없다.
다음 예시를 실행해보면, 에러가 발생한다.
val streamRange = Stream.range(0, 1)
streamRange match {
case Stream.empty => println("empty")
case _ => println("ok")
}
Error:(13, 17) stable identifier required, but scala.`package`.Stream.empty found.
case Stream.empty => println("empty")
Stream.empty는 메소드이기 때문이다. Stream.empy 메소드의 값을 empty로 받고 패턴 매칭하면 제대로 동작한다.
val streamRange = Stream.range(0, 1)
val empty = Stream.empty
streamRange match {
case empty => println("empty")
case _ => println("ok")
}
결과는 다음과 같다.
empty
'scala' 카테고리의 다른 글
[scala] 정수의 산술 연산시 IllegalFormatConversionException 발생 (0) | 2016.10.19 |
---|---|
[scala] 특이한 Iterator (0) | 2016.10.19 |
[scala] 튜플 리스트를 Map으로 변환하기 (0) | 2016.10.17 |
[scala] triple quotes - """ 예시 (0) | 2016.10.17 |
[spark] java.io.NotSerializableException: org.json4s.DefaultFormats$ 문제 (0) | 2016.10.14 |