Spark开发指南

对象

单例对象

scala没有静态方法和静态字段。scala使用object实现,object定义了单个实例。

1 object Accounts {
2   private var lastNumber = 0;
3   def newUniqueNumber() = { lastNumber += 1; lastNumber }
4 }

使用:

for (i <- 0 to 10) println(Accounts.newUniqueNumber)

对象的构造方法在该对象被第一次使用时调用。

伴生对象

在Java中,常遇到类即有静态属性和方法,又有非静态属性和方法。

Scala中,可以通过类与类同名的“伴生”对象达到相同目的。

类和伴生对象可以互相访问私有属性,它们必须存在同一源文件中。

apply方法

定义和使用object的applay方法,进行创建伴生类实例。

好处:少写了new,在很多场景下用起来方便,看起来清晰。

应用程序对象

每个scala程序必须从一个对象的main方法开始,这个方法的类型为Arra[String] => Unit

扩展App特质,代码放入构造方法体中,

scala -Dscala.time Hello Fred

枚举

scala本身没有枚举类型

标准库里提供Enumeration助手类,可用于产生出枚举。

1 object EventType extends Enumeration {
2   val DDOS, DI = Value
3 }

枚举类型是EventType.Value

给类型起个别名:只有引入的时候有意义

1 object EventType extends Enumeration {
2   type EventType = Value
3   val DDOS, DI = Value
4 }