为什么在Scala中类型检查和类型转换被视为不良风格?

时间:2012-12-08 08:54:00

标签: scala types casting

在书中 Programming in Scala,2nd ed。中,作者写道“在Scala中写作类型测试和演员表是相当冗长的。这是故意的,因为不鼓励练习。 你通常最好使用模式匹配类型模式。“在其他地方,他们重复使用这些结构是”糟糕的风格“。

我完全同意Scala的模式匹配语法更好,但它不是类型检查和类型转换的基本语法糖吗?或者我错过了什么?

1 个答案:

答案 0 :(得分:14)

它是糖,但它是非常有用的糖。你可以通过

进行类型转换遇到真正的麻烦
  • 在致电isInstanceOf
  • 之前未检查asInstanceOf
  • 忘记泛型用isInstanceOf
  • 不知道他们的参数类型
  • 不涵盖所传递类型的所有案例

模式匹配正确地处理了所有这些:你只得到一个实例,如果它实际存在,它会对泛型发出警告,并在你有不完整的匹配时发出警告。因此,在类型测试和演员表容易出错的情况下,模式匹配是稳健的,并鼓励良好的设计。