在repl中執行即可得到結果。都是從左至右執行
scala中的操作符就是方法,其優先順序是根據首字母來判斷的,優先順序如下
最高優先順序:除以下字元外的操作符字元一般乘方的操作符是優於乘法操作的,如果使用**作為乘方的話,那麼其優先順序則與*相同,而如果使用^的話,則優先順序低於*操作。優先順序都是有問題的。故沒有使用這兩種操作符* / %
+ -
: = !
< >
& ˆ
| 非操作符
最低優先順序:賦值操作符
classfraction(n:int,d:int)
import scala.math.absclass
fraction(n: int, d: int)
def-(other:fraction):fraction=
def*(other:fraction):fraction=
def/(other:fraction):fraction=
private
defnewfrac(a:int,b:int):fraction=
}object
test
extends
valf = new fraction(15,-6)
valp = new fraction(20,60)
println(f)
println(p)
println(f + p)
println(f - p)
println(f * p)
println(f / p)
}
class不需要提供*和/操作。對於金額來說沒有乘除操作money(val
dollar:bigint,val
cent:bigint)
def-(other:money):money=
private
deftocent()=
def==(other:money):boolean = this.dollar == other.dollar && this.cent == other.cent
def<(other:money):boolean = this.dollar < other.dollar || (this.dollar == other.dollar && this.cent < other.cent)
override
deftostring = "dollar = " + dollar + " cent = " + cent
}object
money
defmain(args:array[string])
}
classtable
def||(str:string):table=
override
deftostring():string=
}object
table
defmain(args: array[string])
}
/\_/\( ' ' )
( - )
| | |
(__|__)
提供將兩個asciiart圖形橫向或縱向結合的操作符。選用適當優先順序的操作符命名。縱向結合的例項
/\_/\ -----
( ' ' ) / hello \
( - ) < scala |
| | | \ coder /
(__|__) -----
import collection.mutable.arraybufferclass
asciiart(str:string)
} def
this()
def+(other:asciiart):asciiart=
art} def
*(other:asciiart):asciiart=
override
deftostring()=
ss}}
object
test
extends
vala = new asciiart(""" /\_/\
|( ' ' )
|( - )
| | | |
|(__|__)
|""".stripmargin)
valb = new asciiart( """ -----
| / hello \
| < scala |
| \ coder /
| -----
|""".stripmargin)
println(a + b * b)
println((a + b) * b)
println(a * b)
}
classbigsequence
defpack():long=
}object
bigsequence
b} def
main(args: array[string])
}
classmatrix(val
x:int,val
y:int)
def+(other:int):matrix=
def*(other:matrix):matrix=
def*(other:int):matrix=
override
deftostring()=
str += "\n"
}str
}}object
matrix
}
classrichfile(val
path:string){}
object
richfile
defif(richfile.path == null) else
} def
main(args: array[string])
}
classrichfile(val
path:string){}
object
richfile
defif(richfile.path == null) else
} def
main(args: array[string])
}
第十一章課後習題
11 1城市和國家 編寫乙個函式,它接受兩個形參 乙個城市名和乙個國家名。這個函式返回乙個格式為 city,country 的字串,如 santiago,chile。將這個函式儲存在乙個名為 city functions.py 的模組中。建立乙個名為 test cities.py 的程式,對剛編寫的...
快學Scala習題解答 第十二章 高階函式
object test extends defvalues fun int int,low int,high int arr println values x x x,5,5 mkstring object test extends valarr array 3,2,6,8,4,6,9,3,6,7,...
《快學Scala》第六章習題解答
rt。package com.scalalearn.scala.main 快學scala 06習題 1.編寫乙個conversions物件,加入inchestocentimeters,gallonstoliters和milestokilometers方法 object conversions def...