在前面一篇关于Scala编程的文章中简单的介绍了Scala语言,关于Scala语言的一些语法及规则,如有感兴趣的朋友可以自己阅读相关书籍,鄙人诚挚推荐《Scala In Programming》,下面利用Scala语言实现简单的分数四则运算。
1、分数的四则运算类
class Rational(n: Int,d: Int) { //分母不能为0的校验 require(d != 0) //分数的最简形式 private val simple = gcb(n.abs,d.abs) val numer = n / simple val denom = d / simple //从构造器(分母为1) def this(n: Int) = this(n,1) //加 def +(that: Rational) : Rational = new Rational( numer * that.denom + that.numer * denom, denom * that.denom ) def +(i: Int) : Rational = new Rational( numer + i * denom, denom ) //减 def -(that: Rational) : Rational = new Rational( numer * that.denom - that.numer * denom, denom * that.denom ) def -(i: Int) : Rational = new Rational( numer - i * denom, denom ) //乘 def *(that : Rational) : Rational = new Rational( numer * that.numer, denom * that.denom ) def *(i: Int) : Rational = new Rational( numer * i, denom ) //除 def /(that: Rational) : Rational = new Rational( numer * that.denom, denom * that.numer ) def /(i: Int) : Rational = new Rational( numer, denom * i ) private def gcb(a:Int,b:Int) : Int = { if(b == 0) a else gcb(b,a%b) } override def toString = numer + "/" + denom }
2、测试用例
object RationalDemo extends App{ val oneHalf = new Rational(1,2) val twoHalf = new Rational(3,4) val sum = oneHalf + twoHalf val sub = oneHalf - twoHalf val mul = oneHalf * twoHalf val div = oneHalf / twoHalf println("oneHalf + twoHalf = " + sum) println("oneHalf - twoHalf = " + sub) println("oneHalf * twoHalf = " + mul) println("oneHalf / twoHalf = " + div) }
3、测试结果
oneHalf + twoHalf = 5/4
oneHalf - twoHalf = -1/4
oneHalf * twoHalf = 3/8
oneHalf / twoHalf = 2/3
相关推荐
scala编程 33章 中文pdf Scala编程实战 目录 第1章字符串. 11 第2章数值39 第3章控制结构.60 第4章类和属性.103 第5章方法147 第6章对象170 第7章包和导入.190 第8章特质200 第9章函数式编程214 第10 章集合242 第...
它是由Martin Odersky在2003年设计并实现的,融合了Java虚拟机(JVM)的优势,并引入了函数式编程的概念,使得它成为大数据处理和并发系统开发的首选语言之一。 本书“Scala编程”PDF版,为学习者提供了深入理解...
Scala编程详解:数组操作之数组转换 共5页第11讲-Scala编程详解:Map与Tuple 共8页第12讲-Scala编程详解:面向对象编程之类 共12页第13讲-Scala编程详解:面向对象编程之对象 共9页第14讲-Scala编程详解:面向对象...
Scala编程详解:数组操作之数组转换 共5页第11讲-Scala编程详解:Map与Tuple 共8页第12讲-Scala编程详解:面向对象编程之类 共12页第13讲-Scala编程详解:面向对象编程之对象 共9页第14讲-Scala编程详解:面向对象...
《Scala编程(第3版)》由直接参与Scala开发的一线人员编写,因而对原理的解读和应用的把握更加值得信赖。《Scala编程(第3版)》面向具有一定编程经验的开发者,目标是让读者能够全面了解和掌握Scala编程语言的核心...
Scala编程详解:数组操作之数组转换 共5页第11讲-Scala编程详解:Map与Tuple 共8页第12讲-Scala编程详解:面向对象编程之类 共12页第13讲-Scala编程详解:面向对象编程之对象 共9页第14讲-Scala编程详解:面向对象...
《Scala编程(第3版)》面向具有一定编程经验的开发者,目标是让读者能够全面了解和掌握Scala编程语言的核心特性,并能够深入理解Scala这门语言在设计取舍背后的动因。即便是不直接使用Scala或从事一线编程工作的...
Scala编程详解:数组操作之数组转换 共5页第11讲-Scala编程详解:Map与Tuple 共8页第12讲-Scala编程详解:面向对象编程之类 共12页第13讲-Scala编程详解:面向对象编程之对象 共9页第14讲-Scala编程详解:面向对象...
Scala编程详解:数组操作之数组转换 共5页第11讲-Scala编程详解:Map与Tuple 共8页第12讲-Scala编程详解:面向对象编程之类 共12页第13讲-Scala编程详解:面向对象编程之对象 共9页第14讲-Scala编程详解:面向对象...
Scala编程详解:数组操作之数组转换 共5页第11讲-Scala编程详解:Map与Tuple 共8页第12讲-Scala编程详解:面向对象编程之类 共12页第13讲-Scala编程详解:面向对象编程之对象 共9页第14讲-Scala编程详解:面向对象...
Scala编程详解:数组操作之数组转换 共5页第11讲-Scala编程详解:Map与Tuple 共8页第12讲-Scala编程详解:面向对象编程之类 共12页第13讲-Scala编程详解:面向对象编程之对象 共9页第14讲-Scala编程详解:面向对象...
Scala编程详解:数组操作之数组转换 共5页第11讲-Scala编程详解:Map与Tuple 共8页第12讲-Scala编程详解:面向对象编程之类 共12页第13讲-Scala编程详解:面向对象编程之对象 共9页第14讲-Scala编程详解:面向对象...
Scala编程详解:数组操作之数组转换 共5页第11讲-Scala编程详解:Map与Tuple 共8页第12讲-Scala编程详解:面向对象编程之类 共12页第13讲-Scala编程详解:面向对象编程之对象 共9页第14讲-Scala编程详解:面向对象...
Scala编程详解:数组操作之数组转换 共5页第11讲-Scala编程详解:Map与Tuple 共8页第12讲-Scala编程详解:面向对象编程之类 共12页第13讲-Scala编程详解:面向对象编程之对象 共9页第14讲-Scala编程详解:面向对象...
Scala编程详解:数组操作之数组转换 共5页第11讲-Scala编程详解:Map与Tuple 共8页第12讲-Scala编程详解:面向对象编程之类 共12页第13讲-Scala编程详解:面向对象编程之对象 共9页第14讲-Scala编程详解:面向对象...
Scala编程指南第三版是针对大数据处理和分布式计算领域的一款重要参考书籍,特别是在Spark生态系统中,Scala作为基础语言,起着至关重要的作用。本指南详细介绍了Scala语言的核心概念、语法特性和高级特性,旨在帮助...
Scala编程实战(包含源码)完整版Alvin Alexander著.part1.rar
面向对象编程之类第13讲-Scala编程:面向对象编程之对象第14讲-Scala编程:面向对象编程之继承第15讲-Scala编程:面向对象编程之Trait第16讲-Scala编程:函数式编程第17讲-Scala编程:函数式编程之集合操作第18讲-...
资源包含《Scala编程》第3版英文版和第3版源代码,Scala编程第3版,目前是最新版,支持Scala 2.11以上。《Scala编程》是Scala语言的创始人参与编写的,涵盖的语法特性非常全面,并且作者解释了为什么这么设计,有...