2d dizisi türü bir boole (önemli değil) var İşlevsel olmayan bir tarzda dizi üzerinde yinelemek kolaydır. FP stili nasıl yapılır?2d scala dizisi yineleme
var matrix = Array.ofDim[Boolean](5, 5)
eski için ben belirli bir sütun için tüm satırları arasında yineleme ve belirli bir işlev eşleşecektir int listesini dönmek istiyorum. Örnek: sütun 3 için, (4, 3), (5, 3) numaralı hücrede bir özel işlevle eşleşiyorsa, 4, 5 değerini döndürmek için satır 1'den 5'e kadar yineleyin.
def getChildren(nodeId: Int) : List[Int] = {
info("getChildren("+nodeId+")")
var list = List[Int]()
val nodeIndex = id2indexMap(nodeId)
for (rowIndex <- 0 until matrix.size) {
val elem = matrix(rowIndex)(nodeIndex)
if (elem) {
println("Row Index = " + rowIndex)
list = rowIndex :: list
}
}
list
}
İlk yapının 2d dizisi ise sol dizinin bir dizi döndüreceğini düşünüyorum. – jts
Ah, başka bir fark, doğrudan 2d dizisinde filtrelemeyi düşünüyordum, ancak bunu yaparak satır dizisini kaybediyorum: val children = matrix.filtre (row => row (nodeIndex)) 2 1d dizileri döndürür - ama hangisini bilmiyorum, hangisini bilmiyorum – jts
Gerçekten, yapıyorum yapıyorum bir dizi, bir dizi değil çıktı). Sonuç türü bir IndexedSeq [Int], ve bir Vector olur. Sadece bir Liste istiyorsanız, ancak yapın. Ancak, Vektör genellikle Liste'den daha iyi bir yapıdır. –