0
私はScalaの新機能です(約1ヶ月)。私はちょうど私が把握することができないタイプチェックエラーに遭遇しましたmap.updated(k、v)とmap +(k、v)の間に* *の違いがありますか? 1つではなく他のコンパイルエラーが発生しました
このスニペットは期待どおりに動作します。
def combine(m: Map[Char, Int], tup: (Char, Int)): Map[Char,Int] = tup match {
case (key: Char, value: Int) => m updated (key, m.getOrElse(key, 0) + value)
}
このスニペットはvalue
def combine(m: Map[Char, Int], tup: (Char, Int)): Map[Char,Int] = tup match {
case (key: Char, value: Int) => m + (key -> m.getOrElse(key, 0) + value)
}
found : Int
required: String
case (key: Char, value: Int) => m + (key -> m.getOrElse(key, 0) + value)
^
の型の不一致エラーを与える、docs on mapはms updated (k,v)
がms + (k->v)
と同等であると言うが、それはそうではないように思われます。
SBT version 0.13.8
Scala version 2.11.8
Java SDK 1.8
IntlliJ IDEa