사용 기입
fill
미리 정의 요소 데이터 구조를 작성하기 위해 표준 스칼라 라이브러리 함수이다. 그것의 매우 편리하고 많은 타이핑을 저장하십시오. 표준 라이브러리에서
ListBuffer.fill(100)(ListBuffer("Scala" -> 1))
스칼라 REPL
scala> import scala.collection.mutable._
import scala.collection.mutable._
scala> ListBuffer.fill(100)(ListBuffer("Scala" -> 1))
res4: scala.collection.mutable.ListBuffer[scala.collection.mutable.ListBuffer[(String, Int)]] = ListBuffer(ListBuffer((Scala,1)), ListBuffer((Scala,1)), ListBuffer((Scala,1)), ListBuffer((Scala,1)), ListBuffer((Scala,1)) ...
충전 구현
def fill[A](n: Int)(elem: => A): CC[A] = {
val b = newBuilder[A]
b.sizeHint(n)
var i = 0
while (i < n) {
b += elem
i += 1
}
b.result()
}
상기 구현은 하나 개의 차원 데이터 구조이다.
일반 제안
자바 방식처럼 스칼라를 사용하는 것처럼 보입니다. 이것은 좋지 않다. 명백한 이익을위한 일을하기위한 기능적인 방법을 포용하십시오.
mutable
컬렉션 대신 List
, Vector
과 같은 컬렉션을 사용하십시오. 문자열에 대한 이유가있을 때까지 가변 콜렉션을 사용하지 마십시오.
불변의 목록
List.fill(100)(List("scala" -> 1))
scala -> 1
을 사용하여 수행 할 수 있습니다
같은 일이 ("scala", 1)
과 동일