case class与case object实战
来源:互联网 发布:韩国女主播软件 编辑:程序博客网 时间:2024/05/22 17:33
参考文献
scala 深入浅出实战经典 . 王家林
场景
case class与case object的基本使用与嵌套case
实验
package com.scode.scala/** * author: Ivy Peng * function: case class 与 case object学习 * date:2016/03/20 12.14 * sum: * 1、作用:语言级别的优化,方便传递消息与模式匹配 * 2、语法:case class className(property:proType,..)其中property默认是 val的 * 3、case object : 需要一个共享的全球唯一的对象时用 * 4、case 嵌套学习 */abstract class Personcase class Student(age:Int) extends Personcase class Worker(age:Int,salary:Double) extends Personcase object Shared extends Personabstract class Itemcase class Book(des:String,price:Double) extends Itemcase class Bundle(des:String,price:Double,items:Item*) extends Itemobject CaseLearn{ def main(args:Array[String]):Unit = { def caseOps(person:Person) = person match { //这里会从person中汲取出 age并复制给 Student.age case Student(age)=> println("I'm "+age +" year old!") case Worker(_,salary)=> println("I'm a worker with salary of "+salary) case Shared => println("No property") } caseOps(Student(19)) caseOps(Shared) val worker = Worker(10,1000.2) val worker2 = worker.copy(salary=10) def recursiveCase(item:Item) = item match { case Bundle(_,_,art@Book(_,_),rest@ _*)=> println("给当前实例Book一个引用名字 art :"+art.des) case Bundle(_,_,Book(desc,_),_*) => println("Book with des:"+desc) case _ => println("Oops") } recursiveCase( Bundle( "Spark 1.0",30.0, Book("Scala,yes",18.0), Bundle("",28.0,Book("java",10),Book("c++",20)) ) ) }}
0 0
- case class与case object实战
- scala-29:Case class和Case object代码实战解析
- 29.Case class 和Case object代码实战解析
- Scala深入浅出实战经典:29,Case class和Case object代码实战解析
- scala之case class 和case object
- Scala模式匹配,case 字符串,case 匹配类型,case 匹配数组,case 匹配List,case 匹配元组,case匹配case class和case object
- case class, object的底层实现
- Case Class
- Case Class
- Case Class
- case class
- Scala class与Case class的区别
- scala case class与class区别
- scala 模式匹配与case class
- scala学习:模式匹配高级实战:嵌套的Case class
- scala-30:模式匹配高级实战:嵌套的Case class
- 30.模式匹配高级实战:嵌套的Case class
- Scala Case Class介绍
- 《C++ Primer Plus》——编程练习答案(7)
- 你该知道的json解析
- 【WebService开发】之编写天气预报的WebService客户端
- ARM架构 修改DMA大小
- 扒扒数据库长长知识(下载资源组合看day2)之08 (集合运算)
- case class与case object实战
- appcompat_v7/res/values-v21/themes_base.xml No resource found that matches the given name: androidXX
- 打印非负整数阶乘的函数
- 求字符串长度
- 基于DES加密的TCP聊天程序
- react学习札记(三)--自己的日历控件
- 模式匹配基本语法与在集合中的使用
- [POJ 1201]Intervals[差分约束]
- linux 扫描端口