스칼라의 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이고, 컴파일/런타임의 에러는 발생하지 않는다. 







Posted by '김용환'
,