Şu ana kadar:Scala dizi başlatma
val array = new Array[Array[Cell]](height, width)
nasıl yeni Cell ("şey") tüm unsurları başlatmak mı?
Teşekkürler, Etam (Scala'ya yeni).
Şu ana kadar:Scala dizi başlatma
val array = new Array[Array[Cell]](height, width)
nasıl yeni Cell ("şey") tüm unsurları başlatmak mı?
Teşekkürler, Etam (Scala'ya yeni).
val array = Array.fill(height)(Array.fill(width)(new Cell("something")))
val array = Array.fromFunction((_,_) => new Cell("something"))(height, width)
Array.fromFunction dizisi için eleman döndürmelidir) n tamsayı argüman alır ve bu bağımsız değişken (örneğin, f (x, y ile tarif dizi pozisyonu için eleman döndüren bir işlev kabul (x) (y)) ve sonra dizinin boyutlarını ayrı bir argüman listesinde açıklayan n tamsayıları. Eğer yaratılış de başlatmak durumunda,
for {
i <- array.indices
j <- array(i).indices
} array(i)(j) = new Cell("something")
diğer yanıtları görmek: dizi zaten oluşturulmuş varsayarsak
Welcome to Scala version 2.8.0.r21376-b20100408020204 (Java HotSpot(TM) Client VM, Java 1.6.0_18).
Type in expressions to have them evaluated.
Type :help for more information.
scala> val (height, width) = (10,20)
height: Int = 10
width: Int = 20
scala> val array = Array.fill(height, width){ new Cell("x") }
array: Array[Array[Cell[java.lang.String]]] = Array(Array(Cell(x), Cell(x), ...
scala>
, bunu kullanabilir.
Bu, İşlev'den daha güzel, ancak scala 2.8 gerektiriyor. Yalnızca iki boyutlu doldurma sürümünü kullanabileceğinizi unutmayın: Array.fill (yükseklik, genişlik) (yeni Hücre ("bir şey")) '. – sepp2k