========= 基础 =========
1 var, val和def三个关键字之间的区别?
val immutable variable
var mutable variable
def function defined keyword
2.object 和 class 的区别?
object 单例 无构造器 成员变量和method都是static 可以直接访问main方法 可以与class同名 构成伴生对象
class 有构造器 需要创建对象 才能在main方法中执行
3.case class (样本类)是什么?
经过scala编译器优化 适合于对不可变数据建模 可用于模式匹配
Case class的每个参数默认以val(不变形式)存在,除非显式的声明为var
自动产生伴生对象,、且半生对象中自动产生appay方法来构建对象
半生对象自动产生unapply方法,提取主构造器的参数进行模式匹配
产生copy方法,来构建一个与现有值相同的新对象
自动产生hashcode,toString,equals方法
默认是可以序列化的,也就是实现了Serializable ;
4 Option , Try和Either三者的区別?
相同:三者内部都包含两个case class
区别
Option:代表可选值,一个是 Some(代表有值),一个是 None (值为空);