《快學scala》筆記及答案2

2021-07-09 12:08:26 字數 2071 閱讀 8009

package com.zhuxiaoyu.chapter2

import scala.math.bigint

object chapter2 將多個語句包含

* 如

* val distance =

* 在這個語句塊中最後一句的返回值作為distance的值。在函式定義中也是最後乙個語句作為函式的返回值,無需return

* * 迴圈

* * for(i <- range)//

* until 不包含上線的區間,比to少最後乙個

* for(range; range) //eg: for(i <- 1 to 9 ; j<- 4 to 9)

* 守衛for(i <- 3 to 5; j<- 5 to 9 if i !=j) //不輸出i == j

* for(i <- 0 to 10; from <- 7-i;j <- from to 9)

* 記錄每次for迴圈的值for(range) yield

* *

* scala沒有break或者continue退出迴圈,可用以下方法處理

* 1.使用boolean

* 2.使用巢狀函式-可以從函式中return

* 3.使用breaks物件的break方法

* import scala.util.control.breaks._

* breakable(

* for (i <- 1 until 10) )

* 函式式定義別忘了 =

* 只要函式不是遞迴,就可以不指定返回型別

* eg:

* def ads(x: double) = {}

* * 預設引數和帶名引數

* eg:

* def deo(str:string , left:string = 「[「,right: string = 「]」) =

* left + str + right

* 若函式呼叫為deo(「abc」) 則輸出[abc]

* deo(「」) 則輸出為

* * 變長引數定義

* def deo(str: string*) = {}

* * 沒有返回值的函式稱為過程 其定義可以沒有=

* 即def deo(str: string) {}

* 也可以寫成def deo(str: string): unit = {}

* * lazy值

* 當val被宣告為lazy時,其初始化將被推遲至首次對他取值

* * lazy val words = 「scala」

* * int、string等的公共超類是any

* */

import scala.util.control.breaks._

def main(args: array[string]): unit = )

for (i <- 2 to 7; j <- 1 to 6 if i != j) yield i

/** * 1.

*/def signum(num: int) = else if (num < 0) else

}/**

* 2.型別unit 值: ()

*/val t = {}

print(t)

/** * 3.x為unit時

* * 4.

*/for (i <- 0 to 10 reverse) println(i)

/** * 5.

*/def countdown(n: int)

/** * 6. 8.

*/def unicodeplus(str: string): long =

t}var pp: long = 1

//7.

"hello".foreach(pp *= _.tolong)

}

//9

def product(s: string): long =

//10

def mi(x: double, n: int): double =

}

《快學scala》12章練習答案

最近看了看 快學scala 比較好的點在於這本書每一章後面都有一些練習,可以自己去做一下,對於掌握知識來講還是不錯的 像是以前上學後面的習題一樣 我不知道 有答案,也沒有認真找過,就自己做了做。iteye上有乙個人寫了前幾章的答案,可以參考一下,鏈結為 遺憾的是這個人只寫到第九章,我上面的鏈結也是第...

快學Scala第二章學習筆記

1 如果在repl中貼上成塊的 可以鍵入 paste,把 貼上進去,ctrl d結束 2 在scala中,塊包含一系列的表示式,其結果也是乙個表示式。快中最後乙個表示式的值就是塊的值。這種特性對於那種某個val初始化需要分多步完成的情況很有用。例如 val distance 3 x y 1 別這樣寫...

快學Scala第一章學習筆記

1 按tab鍵可以補全 2 val 宣告常量,var宣告變數 val aaa 5 結果aaa 5 var aaa 5 結果aaa 5 3 一次宣告多個變數 val aaa,bbb 100 結果 aaa 100,bbb 100 4 變數或函式的型別總是寫在變數或函式名稱的後面 var aaa stri...