Scala操作笔记--函数式编程 及 case 类
2014-09-10 19:54
351 查看
1 咖喱函数
定义:多参数def curriedSum(x: Int)(y: Int) = x + y
生成咖喱函数
scala> val onePlus = curriedSum(1)_
onePlus: (Int) => Int = <function>
2 使用递归完成参数可变的情况下加法
it("should sum all parameters by sum functions using variable length arguments") {def add2(x: Int, y: Int) = x + y
def sum(arg: Int*): Int = {
if (arg.length <= 1)
arg(0)
else
add2(arg.head, sum(arg.tail: _*))
}
sum(2, 3) should be(5)
sum(2, 3, 4) should be(9)
}
3 函数多态
def matchedType[T](x:T) = {x match {
case i:Int =>"int"
case f:Double =>"double"
case s:String =>"string"
}
}
4 case class
case class Calculator(val brand:String,val capacity:String) {}几个便利性:
1 默认的构造函数,不用调用new
2 构造函数的参数默认有val功能
3 有默认的tostring等功能
因为有上述便利性,所以可以使用matcher来match对应对象,反而普通的class不能用来match,因为你不能match一个变量。
5 subclass什么时候要用override
1 如果父类是一个抽象的,在子类的实现不需要用关键字,实际上是实现。2 如果父类是一个具体的方法,则子类的实现需要override,实际就是改写。
相关文章推荐
- Scala学习笔记(三)scala的函数式编程
- 【学渣笔记】scala动手实战之函数式编程特点与价值
- Scala学习—函数式编程之集合操作
- Scala学习笔记(3):纯函数式编程的一些思想和技巧
- Scala入门系列(十):函数式编程之集合操作
- 【Scala学习笔记】一、函数式编程的思想
- Scala学习笔记--函数式编程
- java笔记-网络编程-实例操作
- Scala 编程指南 第一章 阅读笔记
- shell脚本编程之case语句学习笔记
- Scala语言:集成面向对象和函数式编程的特性
- Scala的函数式编程
- Scala疯狂的函数式编程实例
- java编程笔记15 文件锁定操作
- Node.js学习笔记【1】入门(服务器JS、函数式编程、阻塞与非阻塞、回调、事件、内部和外部模块)
- OOP编程iBatis 学习笔记之二 单表增删改操作
- 【图形化编程软件】 sikuli常用函数、简单事件操作 键盘操作 个人总结笔记
- Linux程序设计学习笔记----多线程编程基础概念与基本操作
- scala编程笔记(三)类,字段和方法
- java编程笔记15 文件锁定操作