scala
[scala] 엘리먼트를 List에 추가하기
'김용환'
2016. 9. 26. 16:04
스칼라의 List는 Immutable이기 때문에 List에 뭔가를 추가하는 것은 문제가 된다.
val l = List[Member]()
l += new Member
println(l.size)
이 코드는 실행 시 에러가 발생한다. 그 이유는 불변성을 중요하는 콜렉션 철학이 있다.
Error:(25, 5) value += is not a member of List[Member]
l += new Member
full qualied class name을 보려면 다음 코드를 사용한다.
println(List.getClass.getName)
결과는 scala.collection.immutable.List$이다.
자바처럼 변성을 가진 List를 구현하고 싶다면, 이름이 조금 긴 mutable.MutableList를 사용한다.
val list = mutable.MutableList[Member]()
list += new Member
list += new SchoolMember
println(list.size)
결과는 2이고, 컴파일/런타임의 에러는 발생하지 않는다.