1
如果我在斯卡拉下面這段代碼:案例在地圖VS沒有Case
val prices = Map("bread" -> 4.56, "eggs" -> 2.98, "butter" -> 4.35)
prices.map((k,v) => (k, v-1.1)).toMap
我得到的錯誤:
The expected type requires a one-argument function accepting a 2-Tuple.
Consider a pattern matching anonymous function, `{ case (k, v) => ... }`
但是,當我改變第二行:
prices.map{ case(k,v) => (k, v - 1.1) }.toMap
上述錯誤消失?有人可以解釋什麼時候我需要在地圖功能中使用大小寫?
哦,永遠不會到我的頭......謝謝你指出了!同樣在map函數中,如果我使用case,它只是我必須使用{}的語法。我不能這樣做:'price.map(case(k,v)=>(k,v - 1.1)).toMap'我知道像'()'用於參數,'{}'用於功能體。那麼'case'關鍵字是一個函數嗎? – LP45
我不認爲'case'會被認爲是一個函數。我知道'l.map(/ * do stuff * /)'相當於'l.map {/ * do stuff * /}' –
抱歉,對於遲到的回覆。哦,當你沒有情況下,它們是可以互換的? – LP45