在第二版的《在Scala中编程》一书中,作者写道:“在Scala中编写类型测试和强制类型转换相当冗长。这是有意的,因为这不是鼓励的做法。
通常,将模式匹配与类型化模式结合使用会更好。”在其他地方,他们重复使用这些结构是“较差的样式”。
我完全同意,Scala的模式匹配语法要好得多,但是对于类型检查和类型强制转换,它基本上不是语法糖吗?还是我错过了什么?
最佳答案
它是糖,但它对糖非常有帮助。您可能会对类型强制转换造成真正的麻烦,方法是
isInstanceOf
asInstanceOf
isInstanceOf
的参数类型模式匹配可以正确地为您处理所有这一切:只有在实际存在一个实例的情况下,您才能获得一个实例,它会针对泛型发出警告,而如果您的匹配不完整,则会发出警告。因此,在类型测试和类型转换容易出错的情况下,模式匹配是健壮的,并鼓励良好的设计。
关于scala - 为什么在Scala中类型检查和类型转换被认为是较差的样式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13775964/