###代码示例 假如咱们想要根据某个特定国家(好比法国)的习惯来获取并格式化当前日期, 咱们能够使用如下 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)
更加简洁。
虽然这只是一个很小的语法细节,但它具备很重要的影响。