scala 學習筆記(二)

1.啓動Scala

輸入

scala> 1+ 2
rest0:Int = 3

這行代碼會打印:

rest0:Int = 3
退出scala

:quit
2.這行代碼包括:

1)一個自動產生的或用戶自定義的名稱來說明計算的值(rest0,結果0)

2)冒號(:),跟着表達式的類型(Int)

Int類型是Scala包類的Int。Scala裏的包與Java裏的包很相似:他們把全局命名空間分區,提供信息隱藏機制。所有的java原始類型在scala裏都有對於機制。

println("Hello World!")
//類似於java 
System.out.println("Hello World!")
val類似於java裏的final變量。一旦初始化,val就不能再賦值。與之對應的var是java裏的非final變量。var可以在生命週期多次賦值;

3.定義一些函數

scala> def max(x: Int, y: Int): Int = { 
    if (x > y) x
    else y
 }
max(Int,Int)Int

盜個圖


1)有時候Scala編譯器會需要你定義函數的結果類型。比方說,如果函數是遞歸的,你就必須顯式地定義函數結果類型。然而在max的例子裏,你可以不用寫結果類型,編譯器也能夠推斷它。同樣,如果函數僅由一個句子組成,你可以可選地不寫大括號。這樣,你就可以把max函數寫成這樣: 

def max2(x:Int, y:Int) = if(x > y) x else y
max2:(Int,Int)Int
2)還有既不帶參數也不返回結果的函數定義:

def greet() = println("Hello world!")

greet: ()Unit
4.編寫scala腳本

hello.scala

println("Hello world,from a scripts!")
運行:
$scala hello.scala
通過scala的名爲args的數組可以獲得傳遞給scala的腳本的命令行的參數。scala裏數組以0開始,通過在括號裏制定索引訪問一個元素。因此scala裏數組steps的第一個元素是steps(0),不像java裏的steps[0].

獲取args(0)

println("Hello, " + args(0) + "!")
然後運行:

$scala helloarg.scala planet

這條命令裏"planet"作爲參數傳遞,並在腳本里作爲args(0)被訪問。因此,你會看到:

Hello, planet!
注:scala包含的註釋形式是 //開頭和 /*  */形式中間的字符。

5.使用while循環,if判斷

var i = 0
while (i < args.length) {
   println(args(i))
   i += 1
}

運行:

$scala printargrs.scala Scala is fun
對於scala來說有不需要使用枚舉的遍歷手段,避免用索引枚舉數組的更好的手段。 
6.使用foreach和for枚舉

Scala 允許你指令式地編程,但隨着你對 Scala 的深入瞭解,你可能常會發現你自己在用一種更函數式:functional 的風格編程。 

函數式編程的特點是:函數式第一結構:

args.foreach(arg => println(arg))

你可以加上類型名,不過如此的話你要把參數部分包裹在括號裏(總之這是語法的普通形式): 

args.foreach((arg:String) => println(arg))
這句語法運行和上句是一樣的;

總而言之,函數語法是,括號裏參數列表,右箭頭,然後是函數體。


for語句在scala中的使用

for (arg <- args) 
    println(arg)



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章