Scala에서 불변 목록을 구성하는 방법은 여러 가지가 있습니다 (아래 인위적인 예제 코드 참조). 변경 가능한 ListBuffer를 사용하고, var
목록을 만들고 수정하고, 꼬리 재귀 방법을 사용하고 , 아마도 내가 모르는 다른 방법을 사용할 수 있습니다 .
본능적으로 ListBuffer를 사용하지만 그렇게 할 이유가 없습니다. 목록을 만드는 데 선호되는 방법이나 관용적 인 방법이 있습니까? 아니면 한 방법에 가장 적합한 상황이 있습니까?
import scala.collection.mutable.ListBuffer
// THESE are all the same as: 0 to 3 toList.
def listTestA() ={
var list:List[Int] = Nil
for(i <- 0 to 3)
list = list ::: List(i)
list
}
def listTestB() ={
val list = new ListBuffer[Int]()
for (i <- 0 to 3)
list += i
list.toList
}
def listTestC() ={
def _add(l:List[Int], i:Int):List[Int] = i match {
case 3 => l ::: List(3)
case _ => _add(l ::: List(i), i +1)
}
_add(Nil, 0)
}
What you DON'T do is use a List and append to it
새 목록 이 생성 되었기 때문 입니까? 반면, 앞에 추가 작업을 사용하면 새 목록이 생성되지 않습니까?