【发布时间】:2015-04-14 19:43:57
【问题描述】:
为什么下面的代码类型检查失败:
var a = Map.empty[String, Integer]
var b: Integer = a.getOrElse("", 0)
b += 1
b = b + 1
val c: Integer = a.getOrElse("", 0) + 1
前四行没问题,但最后一行失败并显示“类型不匹配:预期的字符串实际 Int”。这肯定与第 2 行和第 4 行的组合一样吗?
【问题讨论】:
-
误导性错误来自
Predef中隐含的any2StringAdd。您可能希望使用-Yno-predef进行编译以避免此类意外,并显式导入您真正想要的隐式。
标签: scala