我想要一個嵌套列表(k,v)元組轉換爲Scala 2.9.3中的(v,k)的平面列表。我試圖把所需的函數文字放在flatMap中。但是,發生這種情況:爲什麼不能使用flatMap工作?
scala> List(List((1,"123"), (1,"abc")), List((45, "qwer"))).flatMap{ case (k,v) => (v,k) }
<console>:16: error: constructor cannot be instantiated to expected type;
found : (T1, T2)
required: List[(Int, java.lang.String)]
List(List((1,"123"), (1,"abc")), List((45, "qwer"))).flatMap{ case (k,v) => (v,k) }
^
<console>:16: error: not found: value v
List(List((1,"123"), (1,"abc")), List((45, "qwer"))).flatMap{ case (k,v) => (v,k) }
^
<console>:16: error: not found: value k
List(List((1,"123"), (1,"abc")), List((45, "qwer"))).flatMap{ case (k,v) => (v,k) }
^
這是爲什麼發生在我身上?
同樣的錯誤,當我在2.9.3 repl上做的時候 – aitchnyu
@aitchnyu:我沒有注意到你有'List [List [A]]'。固定。再試一次。 – senia
這解釋了一切!我的要求甚至沒有在這個問題上,因爲我使用Spark分佈式集合,它有類似的Scala集合的API(我用List重現了我的問題)。 – aitchnyu