trait App extends DelayedInit
App特质可以用来快速把对象转换为可执行的程序,这里有一个小例子:
object Main extends App{
Console.println("Hello World:" + (args.mkString ","))
}
在这,Main对象继承了App的main方法
args把当前命令行参数作为一个数组返回
注意事项
应该指出的是,这一特性是使用DelayedInit功能,这意味着对象的字段景在主函数执行前不会被初始化
还有一个注意的地反是main方法不应该不重写:整个类将变成一个主函数
这种特质在将来的版本中将不会继承DelayedInit
Source App.scala
版本 2.1,15/02/2011
线性超类型
DelayedInit,AnyRef,Any
类型层次
DelayedInit
App
值成员
val executionStart :Long,当程序执行开始的时间戳类型的时间
def main(args:Array[String]):Unit
主函数
废弃的值成员
def delayedInit(body => Unit):Unit
和初始化相关,这节省了所有要在主函数执行的代码的初始化,此方法通常不会直接从用户代码调用,相反,它被称为用于这些类和对象(特质除外),从DelayedInit特质继承,本身不定义delayedInit方法
body 初始化代码将将为以后的执行存储
定义类 App -> DelayedInit
注解 @deprecated
弃用 :从2.11.0版本开始delayedInit机制将被废弃
App特质可以用来快速把对象转换为可执行的程序,这里有一个小例子:
object Main extends App{
Console.println("Hello World:" + (args.mkString ","))
}
在这,Main对象继承了App的main方法
args把当前命令行参数作为一个数组返回
注意事项
应该指出的是,这一特性是使用DelayedInit功能,这意味着对象的字段景在主函数执行前不会被初始化
还有一个注意的地反是main方法不应该不重写:整个类将变成一个主函数
这种特质在将来的版本中将不会继承DelayedInit
Source App.scala
版本 2.1,15/02/2011
线性超类型
DelayedInit,AnyRef,Any
类型层次
DelayedInit
App
值成员
val executionStart :Long,当程序执行开始的时间戳类型的时间
def main(args:Array[String]):Unit
主函数
废弃的值成员
def delayedInit(body => Unit):Unit
和初始化相关,这节省了所有要在主函数执行的代码的初始化,此方法通常不会直接从用户代码调用,相反,它被称为用于这些类和对象(特质除外),从DelayedInit特质继承,本身不定义delayedInit方法
body 初始化代码将将为以后的执行存储
定义类 App -> DelayedInit
注解 @deprecated
弃用 :从2.11.0版本开始delayedInit机制将被废弃