內容來自書籍《Scala 實用指南》3.8java
Scala 中有一些約定,可讓代碼簡潔且易於閱讀、編寫。下面是這些特性的示例。閉包
支持腳本。不是全部的代碼都須要放在一個類中。若是一個腳本就能知足需求,就直 接將可執行的代碼放在一個文件中,沒有必要都堆在一個類中。性能
return 是可選的。假定最後一個求值的表達式可以匹配方法所聲明的返回類型,那 麼這個表達式的求值結果將會自動做爲方法調用的結果值返回。無須加入顯式的 return 語句能夠簡化代碼,尤爲是在將一個閉包傳遞爲方法參數時。spa
分號是可選的。不須要使用分號來標識每個語句或者表達式的結束(參見 3.10.3 節)這個特性可以去除代碼中的噪聲。若是要多個語句放在同一行上面,可使用分 號來分隔。沒有分號,Scala 也能智能地推斷出一個語句或者表達式是不是完整的, 若是不是,那麼 Scala 將會接着在下一行讀取剩餘的代碼。scala
類和方法默認就是公開的,因此你無須顯式使用 public 關鍵字。對象
Scala 提供輕便的語法以建立 JavaBeans— 它用不多的代碼就能建立變量和不可變it
的屬性。io
對於咱們不關心的那些異常,Scala不會強制要求進行捕獲,可以縮減代碼體積,同時也可以避免不合理的異常處理。table
• 括號和點號也是可選的。class
除此以外,Scala 默認會導入兩個包、scala.Predef 對象以及它們相應的類和成員。 只用類名就能夠從這些預導入的包中引用相應的類。Scala 按照順序導入下面的包和類:
• java.lang
• scala
• scala.Predef
由於 java.lang 已經自動導入,因此無須額外的導入就能夠在腳本中使用通用的 Java 類型。例如,可使用 String,並且不用在前面加上包名 java.lang 做前綴或者 導入它。
也能夠直接使用 Scala 的類型,由於 scala 包中的一切都已經導入。
Predef 對象中包含了類型、隱式轉換以及在 Scala 中經常使用的一些方法。因此,既然已 經默認導入,那麼無須任何前綴或者導入,就能夠直接使用那些方法和隱式轉換。它們太方 便了,以致於你開始相信它們是 Scala 的一部分,實際上它們是 Scala 標準庫的一部分。
Predef 對象還提供了一些類型的別名,如 scala.collection.immutable.Set 和 scala.collection.immutable.Map。所以,當使用 Set 或者 Map 的時候,實際使用的 是Predef中對它們的定義,它們分別指向它們在scala.collection.immutable包中的 定義。