scala(一)

laoma8888發表於2018-08-30

1.Scala 程式是物件的集合,透過呼叫彼此的方法來實現訊息傳遞。

  • 物件 - 物件有屬性和行為。

  • 類 - 類是物件的抽象,而物件是類的具體例項。

  • 方法 - 方法描述的基本的行為,一個類可以包含多個方法。

  • 欄位 - 每個物件都有它唯一的例項變數集合,即欄位。物件的屬性透過給欄位賦值來建立。

Scala 基本語法需要注意以下幾點:

  • 區分大小寫 -  Scala是大小寫敏感的,這意味著標識Hello 和 hello在Scala中會有不同的含義。

  • 類名 - 對於所有的類名的第一個字母要大寫。
    如果需要使用幾個單詞來構成一個類的名稱,每個單詞的第一個字母要大寫。

  • 方法名稱 - 所有的方法名稱的第一個字母用小寫。
    如果若干單詞被用於構成方法的名稱,則每個單詞的第一個字母應大寫。

  • 程式檔名 - 程式檔案的名稱應該與物件名稱完全匹配(建議)
    儲存檔案時,應該儲存它使用的物件名稱(記住Scala是區分大小寫),並追加".scala"為副檔名。 (如果檔名和物件名稱不匹配,程式將無法編譯)。

  • Scala 可以使用兩種形式的標誌符,字元數字和符號。

2.

Scala 與 Java有著相同的資料型別,

資料型別 描述
Byte 8位有符號補碼整數。數值區間為 -128 到 127
Short 16位有符號補碼整數。數值區間為 -32768 到 32767
Int 32位有符號補碼整數。數值區間為 -2147483648 到 2147483647
Long 64位有符號補碼整數。數值區間為 -9223372036854775808 到 9223372036854775807
Float 32 位, IEEE 754標準的單精度浮點數
Double 32 位 IEEE 754標準的單精度浮點數
Char 16位無符號Unicode字元, 區間值為 U+0000 到 U+FFFF
String 字元序列
Boolean true或false
Unit 表示無值,和其他語言中void等同。用作不返回任何結果的方法的結果型別。Unit只有一個例項值,寫成()。
Null null 或空引用
Nothing Nothing型別在Scala的類層級的最低端;它是任何其他型別的子型別。
Any Any是所有其他類的超類
AnyRef AnyRef類是Scala裡所有引用類(reference class)的基類

3.在 Scala 中,使用關鍵詞 "var" 宣告變數,使用關鍵詞 "val" 宣告常量。變數宣告一定需要初始值,否則會報錯。

Scala 支援多個變數的宣告,

val xmax, ymax = 100  // xmax, ymax都宣告為100

如果方法返回值是元組,我們可以使用 val 來宣告一個元組:

scala> val pa = (40,"Foo")

4.訪問修飾符

scala 訪問修飾符基本和Java的一樣,分別有:private,protected,public。

如果沒有指定訪問修飾符符,預設情況下,Scala 物件的訪問級別都是 public。

Scala 中的 private 限定符,比 Java 更嚴格,在巢狀類情況下,外層類甚至不能訪問被巢狀類的私有成員

私有成員

用 private 關鍵字修飾,帶有此標記的成員僅在包含了成員定義的類或物件內部可見,同樣的規則還適用內部類。

保護(Protected)成員

在 scala 中,對保護(Protected)成員的訪問比 java 更嚴格一些。因為它只允許保護成員在定義了該成員的的類的子類中被訪問。而在java中,用protected關鍵字修飾的成員,除了定義了該成員的類的子類可以訪問,同一個包裡的其他類也可以進行訪問

公共成員(public)

Scala中,如果沒有指定任何的修飾符,則預設為 public。這樣的成員在任何地方都可以被訪問。

5.作用域

Scala中,訪問修飾符可以透過使用限定詞強調。格式為:

private[x] 或 protected[x]

這裡的x指代某個所屬的包、類或單例物件。如果寫成private[x],讀作"這個成員除了對[…]中的類或[…]中的包中的類及它們的伴生對像可見外,對其它所有類都是private。



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31496956/viewspace-2213140/,如需轉載,請註明出處,否則將追究法律責任。

相關文章