class Rational(n: Int, d: Int) {
require(d != 0)
private val g: Int = gcd(n, d) val number: Int = n / g
val denom: Int = d / g def this(n: Int) = this(n, 1) override def toString: String =
if (denom != 1) number + "/" + denom else number.toString def add(that: Rational): Rational = {
new Rational(number * that.denom + denom * that.number, denom * that.denom)
} def +(x: Int): Rational = {
add(new Rational(x))
} def +(that: Rational): Rational = add(that) private def gcd(a: Int, b: Int): Int = {
if (b == 0) a else gcd(b, a % b)
} } object Rational extends App {
val rational1: Rational = new Rational(1, 2)
val rational2: Rational = new Rational(1, 2)
val add: Rational = rational1 + rational2
println(s"add=======>$add") //隐式转换
implicit def intToRational(x: Int): Rational = new Rational(x) println("Int*Iational===>" + 2 + intToRational(2))
//偏函数
val sum = (x: Int, y: Int, z: Int) => x + y + z
val b = sum(1, _: Int, 3) println(b(1))
//闭包
val more = 1
val offset = (x: Int) => x + more //重复参数
def echo(s: String*): Unit = s.foreach(println) echo("a", "b") //柯里化
def curriedSum(x: Int)(y: Int) = x + y val add1 = (x: Int) => curriedSum(1) _
println(add1)
}

最新文章

  1. 记一个mvn奇怪错误: Archive for required library: 'D:/mvn/repos/junit/junit/3.8.1/junit-3.8.1.jar' in project 'xxx' cannot be read or is not a valid ZIP file
  2. JAVA XML
  3. 简单横道图Demo
  4. Android 程序崩溃后的处理
  5. javascript 函数详解2 -- arguments
  6. 【Android测试】【随笔】模拟长按电源键
  7. DataGridView绑定数据库,取得的数据插入到DataGridView指定列(一)
  8. Jquery暴力解数独
  9. Matlab中transpose函数的使用
  10. Android 自定义Gallery浏览图片
  11. 算法---高速分拣(quick sort)
  12. linux 下的文件目录操作之遍历目录
  13. Handler的解析和使用
  14. Win10安装Ubuntu14.04.5双系统(显示器为DP接口)
  15. for each ...in / for ...in / for...of
  16. java springboot activemq 邮件短信微服务,解决国际化服务的国内外兼容性问题,含各服务商调研情况
  17. ssm项目中遇到微信用户名称带有表情,插入失败问题
  18. Ant Design 日期选择组件RangePicker 选择时间范围后计算范围内的天数。
  19. print 输出到文件
  20. js性能提高篇

热门文章

  1. BZOJ5177 : [Jsoi2013]贪心的导游
  2. BZOJ2616 : SPOJ PERIODNI
  3. sqlserver的like '%xxx%'优化,全文索引
  4. 安装并运行Hello World
  5. Redis、Memcache、MongoDb的优缺点
  6. Python标准库12 数学与随机数
  7. 关于js的函数
  8. 虚拟串口VSPD破解版 亲测win10 64可用
  9. 前端工程化系列[04]-Grunt构建工具的使用进阶
  10. mybatis 批量添加