0
我可以創建一個列表,像這樣:錯誤:未發現:價值:::
val value = List(1) ::: 2 :: List(3)
現在我試圖分解等,從而名單:
value match { case a ::: b :: c => (a, b, c) }
,但我得到error: not found: value :::
。
爲什麼我得到這個錯誤。爲什麼這種模式不起作用,我應該用什麼來代替?
我可以創建一個列表,像這樣:錯誤:未發現:價值:::
val value = List(1) ::: 2 :: List(3)
現在我試圖分解等,從而名單:
value match { case a ::: b :: c => (a, b, c) }
,但我得到error: not found: value :::
。
爲什麼我得到這個錯誤。爲什麼這種模式不起作用,我應該用什麼來代替?
假設你有
val xs = List(1, 2, 3, 4)
,並假設有一個抽取對象,可以提取集合前綴。我應該爲
case a ::: b :: c => (a, b, c)
匹配,則它(多選)
(List(1, 2, 3), 4, Nil)
(List(1, 2), 3, List(4))
(List(1), 2 , List(3, 4))
(Nil, 1, List(2, 3, 4))
因爲有多種匹配模式的方式,所以上面的提取器不能存在。相反,您可以使用以下內容。
value match { case a :: b :: c => (List(a), b, c) }
剛剛添加你也可以用這種方式匹配,如果你知道確切的列表大小(3個單元):'value match {case List(a,b,c)=>(a,b,c)}' –