【導(dǎo)讀】I'llpointitout.Scalahasclass(es),too. Listing1.classRational(n:Int,d:Int). {. privatedefgcd(x:Int,y:Int):Int=. {. if(x==0)y. elseif(x<0)gcd(-x,y). elseif(y<0)-gcd(x,-y). -2-. elsegcd(y%x,x). }. privatevalg=gcd(n,d). valnumer:Int=n/g. valdenom:Int=d/g. def+(that:Rational)=. newRational(numer*+*denom,denom*). def-(that:Rational)=. newRational(numer*-*denom,denom*). def*(that:Rational)=. newRational(numer*,denom*). def/(that:Rational)=. newRational(numer*,denom*). "Rational:["+numer+"/"+denom+"]". }. classRational(n:Int,d:Int). {. //...asbefore. }. {. valr1=newRational(1,3). valr2=newRational(2,5). valr3=r1-r2. valr4=r1+r2. -3-. }