一个构建有理数的scala例子
class Rational(n: Int, d: Int) {
require(d!=0)
private val g = gcd(n.abs, d.abs) //最大公约数
val numer: Int = n / g
val denom: Int = d / g
def this(n: Int) = this(n, 1)
override def toString = numer + "/" + denom
def add(that: Rational): Rational =
new Rational(numer*that.denom+that.numer*denom,
denom * that.denom)
def +(that: Rational): Rational = add(that)
def mul(that: Rational): Rational =
new Rational(numer*that.numer, denom*that.denom)
def *