Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
在《 Scala 编程》一书中,第 2 版。,作者写道:“在 Scala 中编写类型测试和强制转换相当冗长。这是故意的,因为不鼓励实践。通常最好将模式匹配与类型化模式一起使用。” 在其他地方,他们重复使用这些结构是“糟糕的风格”。
我完全同意 Scala 的模式匹配语法要好得多,但它不是类型检查和类型转换的基本语法糖吗?还是我错过了什么?
它是糖,但它是非常有用的糖。您可能会遇到类型转换的真正麻烦
isInstanceOf
asInstanceOf
模式匹配正确地为您处理所有这些:如果确实有一个实例,您只会得到一个实例,它会警告泛型,如果您有不完整的匹配则会发出警告。因此,在类型测试和强制转换容易出错的情况下,模式匹配是健壮的并鼓励良好的设计。