scala简要:模式匹配
2015-01-02 14:47
190 查看
与switch语句不同,scala模式匹配没有break的问题。如果case中的判断不能匹配,则捕获所有的模式来尝试匹配。变量模式可能与常量表达式冲突,变量必须以小写字母开头。如果有一个小写字母开头的常量,则需要把它抱在反引号中。
在类型匹配的时候,必须给出一个变量名,否则会拿对象本身来进行匹配。由于匹配发生在运行时,Jvm中泛型的类型信息是被擦掉的,所有不能用类型来匹配特定的Map类型。正则表达式是适合使用提取器的场景。
样例类是一种特殊的类,经过优化以被用于模式匹配,其实例使用(),样例对象不使用圆括号。中置表示法可用于任何返回对偶的unapply方法。样例类的特点:
1)模式匹配的代码更精简
2)构造时不需new
3)可以免费得到toString,equals,hashCode 和copy方法
让所有样例类都扩展某个密封的类或特质是个好做法。被包在花括号内的一组case语句是一个偏函数,偏函数表达式必须位于编译器可以推断返回类型的上下文中。
在类型匹配的时候,必须给出一个变量名,否则会拿对象本身来进行匹配。由于匹配发生在运行时,Jvm中泛型的类型信息是被擦掉的,所有不能用类型来匹配特定的Map类型。正则表达式是适合使用提取器的场景。
样例类是一种特殊的类,经过优化以被用于模式匹配,其实例使用(),样例对象不使用圆括号。中置表示法可用于任何返回对偶的unapply方法。样例类的特点:
1)模式匹配的代码更精简
2)构造时不需new
3)可以免费得到toString,equals,hashCode 和copy方法
让所有样例类都扩展某个密封的类或特质是个好做法。被包在花括号内的一组case语句是一个偏函数,偏函数表达式必须位于编译器可以推断返回类型的上下文中。
相关文章推荐
- Scala School 笔记(三)--模式匹配与函数组合
- scala模式匹配和正则表达式
- Scala的模式匹配和条件类
- 第74讲:从Spark源码的角度思考Scala中的模式匹配
- Spark源码的角度思考Scala中的模式匹配
- Scala By Example: Case 类与模式匹配 习题
- 从spark源码的角度思考scala中的模式匹配
- Scala匹配模式-----序列匹配
- Scala 自学笔记 模式匹配和样例类
- Scala入门到精通——第十五节 Case Class与模式匹配(二)
- Scala学习——模式匹配和样例类
- scala模式匹配的使用
- scala模式匹配的使用
- Scala匹配模式---Case 类匹配
- scala-简单的模式匹配
- [Scala] Pattern Matching(模式匹配)
- Scala模式匹配语言,java的替代者
- scala模式匹配的使用
- Scala的模式匹配和条件类
- 第74讲:从Spark源码的角度思考Scala中的模式匹配学习笔记