在书中 Programming in Scala,2nd ed。中,作者写道“在Scala中写作类型测试和演员表是相当冗长的。这是故意的,因为不鼓励练习。 你通常最好使用模式匹配类型模式。“在其他地方,他们重复使用这些结构是”糟糕的风格“。
我完全同意Scala的模式匹配语法更好,但它不是类型检查和类型转换的基本语法糖吗?或者我错过了什么?
答案 0 :(得分:14)
它是糖,但它是非常有用的糖。你可以通过
进行类型转换遇到真正的麻烦isInstanceOf
asInstanceOf
isInstanceOf
模式匹配正确地处理了所有这些:你只得到一个实例,如果它实际存在,它会对泛型发出警告,并在你有不完整的匹配时发出警告。因此,在类型测试和演员表容易出错的情况下,模式匹配是稳健的,并鼓励良好的设计。