1. 提取器
2. Unapply方法
快速上手, 可略过下面
- Scala 提取器是一个实现了Unaply方法的对象;
- Unapply方法算是apply方法的反向操作:
unapply 接受一个对象, 然后从对象中提取值, 提取的值通常是用来构造该对象的值
- 为了更快的理解, 我们有必要复习一下apply方法: , 简单说就是当我们把对象当做函数一样调用, 传值等, Scala会隐式的调用该对象的类中实现的apply方法;, 如我们有初始化一个Person类,并传入值, Person类如果实现了相应的apply(), 则
Person(name, age) 等同于 new Person(name, age)
- apply 方法定义 object 中,用于创建对象;
- apply方法定义 class 中, 用于提取数据;
- unapply 方法 定义在 object 对象中, 用于提取对象数据;
- 即便如此,笔者也不推荐这样做。 unapply 方法仅仅负责属性的 “提取”,不应该在该方法内部做过度的设计。我们应当使用条件守卫来将额外的判断逻辑安排在一个 “更显眼的位置”,以此提高代码的可读性。
3. 样例类