import java.awt._ // 引入包内所有成员
def handler(evt: event.ActionEvent) { // java.awt.event.ActionEvent
... // 因为引入了java.awt,所以可以省去前面的部分
}
import java.awt.{Color, Font}
// 重命名成员
import java.util.{HashMap => JavaHashMap}
// 隐藏成员
import java.util.{HashMap => _, _} // 引入了util包的所有成员,但是HashMap被隐藏了
符号字面量
Symbol类型一般用于快速比较,例如用于Map类型:Map<Symbol, Data>,根据一个Symbol对象,可以快速查询相应的Data, 而Map<String, Data>的查询效率则低很多。
for (a <- 1 to 10; b <- 1 until 10
if a * b > 50
) {
println(a + " , " + b)
}
//IndexedSeq[Int]
var retVal = for {a <- 1 to 10 if a != 3} yield a
Scala 中使用 val 语句可以定义函数,def 语句定义方法。
def m(x: Int) = x + 2
val f = (x: Int) => x + 2
高阶函数, 模板
// 函数 f 和 值 v 作为参数,而函数 f 又调用了参数 v
def apply(f: Int => String, v: Int): String = f(v)
def layout[A](x: A): String = "[" + x.toString() + "]"
偏函数
val logWithDateBound = log(date, _ : String)