奇怪的行爲在for
循環模式匹配:Scala的:在`for`圖案匹配奇怪的行爲爲無的情況下
scala> val a = Seq(Some(1), None)
a: Seq[Option[Int]] = List(Some(1), None)
scala> for (Some(x) <- a) { println(x) }
1
scala> for (None <- a) { println("none") }
none
none
爲什麼在第二個例子中的兩個輸出'none'
產生?也許這個例子是合成的並且不實用,但是這種行爲是不可預期的。這個錯誤或功能?
如果從這個問題使用解決方法,它的工作原理:'scala> for(n @ None < - a)println(「none」)' 產生'none'輸出 –
Ha,我也用'n', 。 –
順便說一下,你可以取消選中綠色,所以人們不認爲這是斯卡拉應該如何工作。我在這裏把這個問題聯繫起來了,所以斯卡拉人不認爲人們不會浪費時間在這些小問題上。 –