Scala 有理数简单应用与scala特性
2016-03-08 12:36
295 查看
这里只是简单的实现了一下其中的一些操作
这里我们看到scala的如下几个重要的特性:
操作符就是方法
类构造方法更简单
字段定义都是不可变的
类的对象都是新生成的,而非改变原始对象的状态
scala的一元操作符让程序更灵活, 譬如上例:-r 中的应用
implicit 的隐式转换。 implicit是一个强大的功能,也是scala增加java的必备利器。上例中实现了int到rational对象的转换
class与object。 class就是java中的class, object定义的是一个单例对象
/** * 有理数sample; 有理数谓之:2/3,4/6就是我们说的分数 * @param a 分子 * @param b 分母 */ class Rational(a:Int, b:Int) { require( b != 0) override def toString = s"$a / $b" val n = a val d = b def this(n:Int) = this(n, 1) def add(t:Rational) = if (d == t.d) new Rational(n + t.n,t.d) else new Rational(n * t.d + t.n * d, d * t.d) def * (t:Rational) = new Rational(n * t.n, d * t.d) def * (t:Int) = new Rational(n * t, d) def unary_- = new Rational(-n, -d) def + (t:Rational) = add(t) } object Rational { implicit def int2Rat(i:Int) = new Rational(i) } // 有理数应用测试 val r = new Rational(3, 5) //r: Rational = 3 / 5 -r //res0: Rational = -3 / -5 val rr = new Rational(4) //rr: Rational = 4 / 1 val rrr = rr * r //rrr: Rational = 12 / 5 rr * 4 //res1: Rational = 16 / 1 5 * rr //res2: Rational = 20 / 1
这里我们看到scala的如下几个重要的特性:
操作符就是方法
类构造方法更简单
字段定义都是不可变的
类的对象都是新生成的,而非改变原始对象的状态
scala的一元操作符让程序更灵活, 譬如上例:-r 中的应用
implicit 的隐式转换。 implicit是一个强大的功能,也是scala增加java的必备利器。上例中实现了int到rational对象的转换
class与object。 class就是java中的class, object定义的是一个单例对象
相关文章推荐
- switch局部变量
- (二) POI 解析Excel 之 生成Excel文档
- Unity3d外包-就找北京动点软件
- iTween基础之Audio(音量和音调的变化)
- C++ 中类之间通过指针访问
- Xcode创建通用动态库 (详解)
- 天涯明月刀 题十
- 各类算法技巧核心代码,知识点归纳总结之最长公共子序列
- (一) POI 简介
- SQL Server 阻止了对组件“xp_cmdshell”的 过程“sys.xp_cmdshell”的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。
- iOS:2015年07月最新苹果IOS上架App Store商店步骤
- 防止xss攻击
- new 、delete和malloc、free的解析及区别
- ios9定位服务的app进入后台三分钟收不到经纬度,应用被挂起问题及解决方案
- addChildViewController与viewWillAppear、viewDidAppear关系说明
- 集训队专题(8)1003 Chinese remainder theorem again
- 李开复:我在硅谷看到了什么?
- android中Handle类的用法
- HashMap中插入null key的过程分析
- 【ROS学习】(九)ROS Network(1)