我只是發現自己編寫了一段代碼,看起來像這樣:在Scala中嵌套理解是否是一種很好的風格?
def language(frequencies: Array[String], text: Array[String]) = {
val allText = text.mkString.replace(" ", "")
val emaps = for {
fset <- frequencies
devs = for {
i <- 'a' to 'z'
p = fset.indexOf(i) match {
case -1 => 0d
case x => fset.substring(x + 1, x + 3).toDouble/100 * allText.size
}
a = allText.count(i ==)
dev = math.pow(p - a, 2)
} yield dev
} yield devs.sum
emaps.min
}
正如你所看到的,價值emaps
是一個字符串數組創建雙打的數組。它工作正常。我以前沒有看到過這樣嵌套的理解。它可以或者我應該重構嗎?
我認爲沒關係。我更害怕地圖陣列。 –
@ om-nom-nom我已經改變了一下,所以沒有更多的地圖數組!無論如何感謝評論。 –