###代碼示例 假如咱們想要根據某個特定國家(好比法國)的習慣來獲取並格式化當前日期, 咱們能夠使用如下 Scala 和 Java 混搭的代碼來實現。java
import java.text.DateFormat._ import java.util.{Date, Locale} /** * Created by jackiehff on 16/6/26. */ object FrenchDate { def main(args: Array[String]) { val now = new Date val df = getDateInstance(LONG, Locale.FRANCE) println(df format now) } }
在 main 方法內咱們首先建立了 Java Date 類的一個實例, 其默認值就是當前日期。接着咱們使用靜態的 getDateInstance 方法定義了一個日期格式化器 DateFormat。最後咱們根據本地化的 DateFormat 實例打印輸出當前日期。函數
###代碼剖析 ####一、import java.lang 包下的全部類默認都會被引入進來, 其它的類則須要顯示的引入。工具
Java 類庫中定義了不少功能強大的工具類, 例如 Date 和 DateFormat。因爲 Scala 能夠無縫地和 Java 互操做, 所以沒有必要在 Scala 類庫中實現等價的類, 咱們能夠簡單地引入對應的 Java 包中的類:code
import java.text.DateFormat._ import java.util.{Date, Locale}
Scala 的 import 語句很是相似於 Java 的 import 語句, 而且它更增強大. 同一個包中的多個類能夠使用一對花括號引入進來, 參見代碼中的第二個 import 語句。另外一個不一樣點是當你想要引入一個包或類中的全部名稱時須要使用下劃線而不是星號, 參見代碼中第一個 import 語句, 這是 **由於星號在 Scala 中是一個有效的標識符 (好比方法名) ** 。orm
第一個 import 語句引入了 DateFormat 類的全部成員(包括成員函數和字段), 這樣使得 靜態方法 getDateInstance 和 靜態字段 LONG 直接變得可見。對象
####二、val 在 Scala 中, val 和 var 均可以用來定義變量。用 val 定義的變量是不可變的, 初始化以後, 值就會固定不變。而用 var 定義的變量是可變的, 其值進行能夠屢次修改。get
上面所說的_不變性指的是變量自己, 而不是變量所引用的對象實例_。好比:form
val now = new Date
則不能把 now 指向其它引用, 可是能夠使用 setTime 方法改變 Date 實例。import
Best Practice: 在 Scala 中, 儘可能優先使用 val, 而不是 var變量
####三、中綴語法 只有一個參數的方法能夠使用中綴語法。即 表達式
df format now
相比於表達式
df.format(now)
更加簡潔。
雖然這只是一個很小的語法細節,但它具備很重要的影響。