注意:我问这个问题是出于好奇,而不是质疑语言功能的重要性。
看起来是向命令式编程世界的人们介绍的一个很棒的功能。
我是 Scala 的新手,仍然试图找出所有的地方,让它的大量构造适合并且可以被利用。
模式匹配绝对可以比 switch 案例做得好 100 倍。
但是,自从 OOP 出现以来,它仍然是一个案例结构,我们习惯于使用多态性。
所以简而言之,我发现难以理解的是,如果 switch case 鼓励重复,我们最好将与 case 相关的代码编写到各自的类中,那么 Scala 的模式匹配如何克服这个问题?
我们仍然可以为各种情况使用类或泛型类,并再次利用多态性来满足我们的需要。
最佳答案
这是对象和数据结构之间差异的问题。
如果您正在处理对象,请使用子类型多态性 - 添加新类型不需要重新编译、重新测试或重新部署现有类型,而添加新算法(接口(interface)上的方法,位于层次结构的顶部)则需要.
如果您正在处理数据结构,请使用模式匹配 - 添加新算法不需要重新编译、重新测试或重新部署现有算法,而添加新类型则需要。
了解更多信息 here .
关于oop - Scala 中的模式匹配如何克服 switch case 导致的重复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11628852/