scala入門1(簡介與基礎語法1)
scala是什麼?
Scala 是一門 函式式的面向物件語言。他執行在Java虛擬機器上.
第一個Scala例子
作為學習Scala的第一步,我們將首先寫一個標準的HelloWorld,這個雖然不是很有趣,但是它可以讓你對Scala有一個最直觀的認識而不需要太多關於這個語言的知識。我們的Hello world看起來像這樣:
object HelloWorld {
def main(args: Array[String]) {
println("Hello, world!")
}
}
程式的結構對Java程式設計師來說可能很令人懷念:它由一個main函式來接受命令列引數,也就是一個String陣列。這個函式的唯一一行程式碼把我們的問候語傳遞給了一個叫println的預定義函式。main函式不返回值(所以它是一個procedure method)。所以,也不需要宣告返回型別。
對於Java程式設計師比較陌生的是包含了main函式的object語句。這樣的語句定義了一個單例物件:一個有且僅有一個例項的類。object語句在定義了一個叫HelloWorld的類的同時還定義了一個叫HelloWorld的例項。這個例項在第一次使用的時候會進行例項化。
大家可能會發現main函式並沒有使用static修飾符,這是由於靜態成員(方法或者變數)在Scala中並不存在。Scala從不定義靜態成員,而通過定義單例object取而代之。
為何學習Scala(特點)
可拓展•面向物件
•函數語言程式設計
相容JAVA
•類庫呼叫
•互操作
語法簡潔
•程式碼行短
•型別推斷
•抽象控制
靜態型別化
•可檢驗
•安全重構
支援併發控制
•強計算能力
•自定義其他控制結構
Scala基礎語法
val,常量宣告 val
x:T val x:T=e
var,變數宣告 var
x:T var x:T=e
型別省略(預設型別) val
x=e var x=e
宣告省略(連續宣告) val
x1,x2,x3 等價於 val x1;val x2;val x3 var x1,x2,x3:T=e等價於var xn:T=e
def,函式宣告 def
adder(m:Int,n:Int) =m+n
無參函式 def
adder()=e
type,型別宣告 type T1 = String => Int
class,類宣告
class Complex(real: Double, imaginary: Double) {
def re() = real
def im() = imaginary
}
object,物件宣告
object Timer {
def oncePerSecond(callback: () => Unit) {
while (true) { callback(); Thread sleep 1000 }
}
def timeFlies() {
println("time flies like an arrow...")
}
def main(args: Array[String]) {
oncePerSecond(timeFlies)
}
}