1. 程式人生 > >Scala從零開始:使用Scala IDE寫hello world

Scala從零開始:使用Scala IDE寫hello world

簡介

在上一篇文章中,我們闡述了Coursera使用Scala的理由,以及Scala的優缺點。說多不如少練,我們今天就開始練習如何使用Scala程式設計。

雖然Scala是一門比較新的語言,但是很多機構都為其開發了IDE或者整合外掛,比較流行的有Eclipse、IntelliJ以及Netbeans。今天我們使用集成了Scala IDE外掛的Eclipse進行程式碼的編寫。

IDE下載及安裝

我們在Scala IDE的官網可以下載到最新版本的Scala IDE for Eclipse(本文采用3.0.2 Release),有兩種下載方式可以選擇:Bundle方式以及外掛方式。其中前者是將Scala外掛整合到Eclipse中的捆綁下載,而後者提供在已有Eclipse IDE上安裝Scala外掛的選擇。你可以根據自己的需求以及系統型號來選擇。Bundle安裝包中包含了以下內容:

  • Eclipse 4.3.1 (Kepler)
  • Scala IDE 3.0.2
  • Scala Worksheet 0.2.1
  • Play Framework support 0.4.1
  • m2eclipse-scala Maven connector 0.4.3
  • access to the full Scala IDE ecosystem

Bundle安裝包解壓後,開啟Eclipse IDE,在Help=》Install New Software中可以看到已安裝的外掛包含了以上列表中的內容:


如果選擇外掛方式安裝,可以根據上述列表將內容整合到Eclipse中,已達到最好效果。

注意:無論採用哪種方式安裝,確保你的節點上有JDK6 or JDK7。

建立工程

安裝完畢之後,我們依次File=》New=》New Scala Project,可以新建一個Scala工程,如下圖所示:


點選Next,可以配置一下工程屬性,我們可以看到工程的依賴項包含了JDK以及SDK:


編寫程式碼

在包中建立Scala程式碼類,當前我們建立的是一個Scala物件(Object),Scala物件是Scala中類的單例模式,Object標明瞭在記憶體中只會存在一個HelloWord例項。


接下來,我們編寫main方法,程式碼如下:

package com.doggie

object HelloWorld {
  def main(args: Array[String]): Unit = {
	  println("hello world")
  }

}

我們注意到main方法並沒有使用static修飾,而Scala中已經摒棄了static作為方法的關鍵字。mian方法的入參是一個Array[String],即為一個String陣列,這與java中一致。但是Scala中使用方括號而不是尖括號來指定泛型的型別。這有效避免了與尖括號作為方法名稱(以後的文章中會涉及)的混淆。

而Scala類中方法的定義形式如下:def 方法名(引數): 返回值型別 = {方法體}

其中引數和返回值的模式為:val: type,這種變數名在前、變數型別在後、相互之間使用冒號隔開的方式將貫穿在Scala的程式碼中。另外方法和方法體之間使用等號隔開。

返回值的型別為Unit,相當於java中的void。

java中使用print和println方法向控制檯輸出,地位相當於java中的System.out.print以及System.out.println,實際上通過查閱程式碼,print和println確實是對System.out中相應方法的呼叫:

private val outVar = new DynamicVariable[PrintStream](java.lang.System.out)
def out = outVar.value
def println(x: Any) { out.println(x) }
def println(x: Any) = Console.println(x)

另外一個細節是,Scala中將約定每行結尾可以不加分號,這恐怕對寫習慣了java程式碼的coder來說有點不習慣(如果同一行包含兩條語句,那麼必須用分號隔開)。

如果你觀察足夠敏銳,當然也會發現Scala連語句縮排也由熟悉的4個空格改為2個空格了。

結果

像執行Java程式碼一樣,右鍵選擇Run as Scala Application,在控制檯就會見到熟悉的字樣了。

hello world

其他Scala開發的IDE可以參考:

參考資料:

http://scala-ide.org/download/sdk.html