Scala class和case class的区别
2016-07-20 17:37
447 查看
在Scala中存在case class,它其实就是一个普通的class。但是它又和普通的class略有区别,如下:
1、初始化的时候可以不用new,当然你也可以加上,普通类一定需要加new;
2、toString的实现更漂亮;
3、默认实现了equals 和hashCode;
4、默认是可以序列化的,也就是实现了Serializable ;
5、自动从scala.Product中继承一些函数;
6、case class构造函数的参数是public级别的,我们可以直接访问;
7、支持模式匹配;
其实感觉case class最重要的特性应该就是支持模式匹配。这也是我们定义case class的唯一理由,难怪Scala官方也说:It
makes only sense to define case classes if pattern matching is used to decompose data structures. 。来看下面的例子:
1、初始化的时候可以不用new,当然你也可以加上,普通类一定需要加new;
6、case class构造函数的参数是public级别的,我们可以直接访问;
其实感觉case class最重要的特性应该就是支持模式匹配。这也是我们定义case class的唯一理由,难怪Scala官方也说:It
makes only sense to define case classes if pattern matching is used to decompose data structures. 。来看下面的例子:
相关文章推荐
- Android Native 绘图方法
- Windows下Scala环境搭建
- C#中struct和class的区别详解
- VBS ArrayList Class vbs中的数组类
- 大家看了就明白了css样式中类class与标识id选择符的区别小结
- 深入了解PHP类Class的概念
- jquery 表单验证之通过 class验证表单不为空
- setAttribute 与 class冲突解决
- JavaScript通过HTML的class来获取HTML元素的方法总结
- JavaScript中的类(Class)详细介绍
- 原生js实现class的添加和删除简单代码
- javascript面向对象包装类Class封装类库剖析
- jQuery针对input的class属性写了多个值情况下的选择方法
- 详解js中class的多种函数封装方法
- jQuery使用hide方法隐藏指定元素class样式用法实例
- jQuery给多个不同元素添加class样式的方法
- jQuery点击改变class并toggle及toggleClass()方法定义用法
- jquery采用oop模式class类的使用示例
- jquery点击改变class并toggle的实现代码
- Windows7下安装Scala 2.9.2教程