2016-07-11 3 views
0

Ich habe ein ArrayWie Wert in unveränderlicher Arrays scala ersetzen

val doot = Array("a", "b", "c") 

Ich mag den zweiten Index mit dem Buchstaben „z“ ersetzen, aber ich will nicht doot ändern. Ich möchte ein neues Array erstellen, das scheint die Sprache in scala zu sein.

Bisher kann ich nur das Array mit Update ändern

doot.update(1, "z") // But now doot is modified directly, not ideal! 

Bietet scala einen Weg, dies zu tun?

+1

Um sprachlich klar zu sein: Sie können einen Wert in einem "unveränderlichen Array" nicht "ersetzen", da es unveränderlich ist. d.h. kann sich nicht ändern. –

+7

Um weiter Sprache zu verstehen: Es gibt kein "unveränderbares Array" in Scala. Es gibt nur ein "Array", und es ist veränderbar. –

+0

Nun, das ist gut zu wissen! Meine Formulierung war aus yeah, der Punkt war, dass ich einen Wert in einem unveränderlichen Array nicht ersetzen kann. Ich wollte ein neues Array erstellen, bei dem dieser Wert ersetzt wurde. – MintyAnt

Antwort

4
scala> val doot = Array("a", "b", "c") 
doot: Array[String] = Array(a, b, c) 

scala> val eoot = doot.updated(1, "z") 
eoot: Array[String] = Array(a, z, c) 

scala> doot 
res0: Array[String] = Array(a, b, c) 

scala> eoot 
res1: Array[String] = Array(a, z, c) 
Verwandte Themen