快學Scala習題解答 第十一章 操作符

2021-07-03 10:55:51 字數 3298 閱讀 3406

在repl中執行即可得到結果。都是從左至右執行

scala中的操作符就是方法,其優先順序是根據首字母來判斷的,優先順序如下

最高優先順序:除以下字元外的操作符字元

* / %

+ -

: = !

< >

& ˆ

| 非操作符

最低優先順序:賦值操作符

一般乘方的操作符是優於乘法操作的,如果使用**作為乘方的話,那麼其優先順序則與*相同,而如果使用^的話,則優先順序低於*操作。優先順序都是有問題的。故沒有使用這兩種操作符

class

fraction(n:int,d:int)

import scala.math.abs

class

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])

}

不需要提供*和/操作。對於金額來說沒有乘除操作

class

table

def||(str:string):table=

override

deftostring():string=

}object

table

defmain(args: array[string])

}

/\_/\

( ' ' )

( - )

| | |

(__|__)

提供將兩個asciiart圖形橫向或縱向結合的操作符。選用適當優先順序的操作符命名。縱向結合的例項

/\_/\ -----

( ' ' ) / hello \

( - ) < scala |

| | | \ coder /

(__|__) -----

import collection.mutable.arraybuffer

class

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)

}

class

bigsequence

defpack():long=

}object

bigsequence

b} def

main(args: array[string])

}

class

matrix(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

}

class

richfile(val

path:string){}

object

richfile

defif(richfile.path == null) else

} def

main(args: array[string])

}

class

richfile(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...