scala學習(二)

  scala中的基本類型和java的基本類型同樣。java

字符字面量:八進制數必須在'\0'和'\377'之間。十六進制之前綴\u的4位十六進制數字的通用Unicode字符方式給出。api

1 to 5  //1~5包含5 ; 1 until 5 //1~5不包含5函數

to、until有個重載的方法如:1 to 5,2 結果Range(1, 3, 5) //區間從1開始1*2取一次spa

Scala中的==與java中的==和equals:scala

scala中的==能夠比較任何類型還會作null處理,若是左邊調用的是null直接返回false,它會比較對象的值。scala中還專門有一個eq方法與java中的==方法對應,還有的ne比較兩個對象不相等的方法code

一些富操做:對象

0 max 5 取大的值遞歸

0 min 5 取小的值資源

-2.7 abs 取絕對值input

-2.7 round  四捨五入

1.5 isInfinity  是不是無窮大

(1.0/0)isInfinity 是不是無窮大

4 to 6 遍歷4~6的數值

"bob" capitalize 首字母大寫

1、scala高級for循環和for推到式

for(i <- 1 to 3 ; j <- 1 to 3 if i != j) println(10 * i + j)

這就至關於java中的:

int[] inti = {1,2,3};

int[] intj = {1,2,3};

for(int i=0;i<inti.length;i++){

    for(int j=0;intj<length;j++){

        if(i != j){

            System.out.println(10*i+j);

        }

    }

}

for(i <- 1 to 10) yield i%3     //值Vetor(1,2,0,1,2,0,1,2,0,1)

返回一個集合,每次迭代生成集合中的一個值

2、函數

函數是由: def 函數名(參數名:參數類型) = {函數體}

只有一行表達式能夠省略大括號{},若是是遞歸函數就必須加上 :返回類型 若是沒有返回類型,Scala編譯器沒法校驗遞歸函數的返回類型。

可變參數 參數類型*  如:def sum(args:Int*)= {var result=0 ;for(arg <- args) result += arg;result}

能夠val s = sum(1,4,8,18)  值31

      val  s =sum(1 to 5 : _*)  值15

      val  s =sum(1 to 5)  //編譯出錯不能傳一個區間

函數 _ () 是 f => f()的縮寫,也就是說它能夠帶函數做參數,並執行對它的空參數列表調用.

3、懶值

如 lazy val i = 80 max 1 //在首次使用的時候取值

 4、異常

scala與java同樣會拋出java.lang.Throwable的子類異常,可是scala中沒有受檢查異常。

5、try、catch、finally

val a = try{val f= new FileReader("input.txt")}catch{cese e:Exception => }finally{2}

沒有異常a的值就是try塊的返回值,若是有異常就是catch塊的返回值。finally只作釋放資源的處理不返回任何值。

相關文章
相關標籤/搜索