**注意**:Scala中,表達式后的分號可以省去(多個表達式寫在同一行則還是需要分號的),但是Scala源碼中都是帶分號的,所以建議保留分號
- 使用Scala解釋器
- 在Scala解釋器中鍵入代碼塊可以采用命令::paste,以CTRL+D結束;
- 變量定義
- var聲明的變量,可以在生命周期中被多次賦值 ;
- val聲明的變量,類似Java中final變量,一旦初始化,就不能再被賦值;
- 變量最好寫明類型,這會有便于之后的代碼閱讀(雖然Scala中有類型推斷機制);
-
函數定義
- 定義函數用關鍵字def
- 函數名
- 參數列表,其中每個參數都必須帶有前綴冒號的類型標注(編譯器無法推斷函數的參數類型)
- 函數結果類型,例如(: Int)
- 函數體,放在{}內
~~~
def max(x: Int, y: Int): Int = {
if(x > y) {
x;
} else {
y;
}
}
~~~
-
腳本
使用命令scala可以編譯.scala文件;
命令行參數存放在名為args的Scala數組里,用args(0)訪問第一個元素;
-
while做循環,if做判斷
~~~
var i = 0;
while(i < args.length) {
if(i != 0) {
print(" ");
}//(個人習慣)在代碼塊僅有一行語句時也用{}
println(args(i));
i += 1;
}
println();
~~~
-
foreach和for做枚舉
- 用foreach可以更簡潔的打印每個命令行參數,這是一種更為函數式的編程風格。
以下三種寫法都表達同一個意思:
-
第三種最簡明的寫法的條件是:函數字面量只有一行語句并指代一個參數,那么可以將指代參數省去。 `
args.foreach(arg => println(arg));
args.foreach((arg: String) => println(arg));
args.foreach(println);
`
-
函數自面量:
1. 括號及命名參數列表 (x: Int, y: Int)
1. 右箭頭 =>
1. 函數體 x + y;
用for也可以寫出簡明的代碼:
~~~
for(arg <- args) {
println(arg);
}
~~~