1.Unit類似void,函數沒有返回值就用Unit代替
2.參數args
// Say hello to the first argument
println("Hello, "+ args(0)+"!")
以上兩行保存成scala文件helloarg.scala,然後執行命令:
$scala helloarg.scala apple
apple就作爲參數被打印出來。
3.scala不用分號去分隔聲明,分號可以加也可以不加
4.函數的定義圖
5.functionliteral
函數編程的一個主要特徵是that functions are first class constructs (不知道如何翻譯過來)。
看下面一個簡單的例子:
args.foreach(arg=> println(arg))
args調用foreach函數,同時往這個函數中傳入一個function literal(類似函數的東西,又能當作參數傳遞),參數是arg,函數體是println(arg)。也可以聲明傳入函數參數的數據類型:
args.foreach((arg:String) => println(arg))
如果傳入的函數僅有一個參數和一個聲明,整個函數聲明可以簡寫爲:
args.foreach(println)
function literal的語法特徵如下:
前面是參數,後面跟着向右的箭頭=>,然後指向函數體。
6.for循環
for (arg<- args)
println(arg)
這裏arg是val不是var,雖然好像每次都感覺像賦一個新的值到arg,但是它確實是val。每次都創建一個新的val 的arg。