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只作釋放資源的處理不返回任何值。