Verwendung füllen
fill
ist eine Standardfunktion Scala-Bibliothek, um eine Datenstruktur mit vorgegebenen Elementen zu füllen. Es ist sehr praktisch und spart viel Tipparbeit.
ListBuffer.fill(100)(ListBuffer("Scala" -> 1))
Scala 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)) ...
fill Umsetzung in Standardbibliothek
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()
}
Die obige Implementierung ist für eine eindimensionale Datenstruktur.
Allgemeine Vorschläge
Sieht aus wie Sie Scala wie die Java Art und Weise verwenden. Das ist nicht gut. Umfassen Sie einen funktionalen Weg, um Dinge für offensichtliche Vorteile zu tun.
Verwenden immutable
Sammlungen wie List
, Vector
statt mutable
Sammlungen. Verwenden Sie keine veränderbaren Sammlungen, bis Sie einen String-Grund dafür haben.
gleiche kann
List.fill(100)(List("scala" -> 1))
scala -> 1
ist mit unveränderliche Liste erfolgen gleiche wie ("scala", 1)