模式匹配是针对一个值判断情况的一系列表达式。
模式匹配的比较项仅能是常量。
除非可以为常量的几种类型,否则不会接收自定义的类型转换。
模式匹配可以使用 is 表达式来构建。
常量模式
常量模式可以判断一个值是否和另一个常量匹配。
模式匹配只在乎实际上的值,不在乎声明的变量类型,
并且使用模式匹配自己的判断方式(等号也是可以被改写的)。
变量o虽然声明的类型是object,但实际的类型仍然是int。
(有继承关系的接收变量不会发生类型转换,int和long之间的类型转换是自定义的,而int和object之间有继承关系)
逻辑模式
逻辑模式可以使用关键字 and(与),or(或),not(非)来进行逻辑判断。
相较于使用逻辑运算符,只会进行一次取值操作。
在某些特殊情况,对同一个值连续取值也可能出现不同结果
因为只会进行一次取值。模式匹配可以判断是否永远满或永远不满足
关系模式
关系模式可以配合除了相等和不相等外的关系运算符,对一个数字类型的常量进行比较。
括号模式
逻辑模式的优先级同样也是:非–>与–>或。
也同样可以使用括号改变优先级。