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)