1. 程式人生 > >scala入門1(簡介與基礎語法1)

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)
      }
}