App in Scala
Created by Wang, Jerry on Sep 25, 2015
application里一个object extend了一个App:
通过查看source code的实现能发现App是一个trait,继承了DelayedInit:
scala.DelayedInit
Classes and objects (but note, not traits) inheriting the DelayedInit marker trait will have their initialization code rewritten as follows: code becomes delayedInit(code).
Initialization code comprises all statements and all value definitions that are executed during initialization.
Example:
trait Helper extends DelayedInit { def delayedInit(body: => Unit) = { println(“dummy text, printed before initialization of C”) body // evaluates the initialization code of C } } class C extends Helper { println(“this is the initialization code of C”) } object Test extends App { val c = new C }
Should result in the following being printed:
dummy text, printed before initialization of C this is the initialization code of C
所有带有App 特质的类,其初始化方法都会被挪到delayedInit方法中。App特质的main方法捕获到命令行参数,调用delayedInit方法。
要获取更多Jerry的原创文章,请关注公众号"汪子熙":
相关文章
- 可视化服务编排在金融APP中的实践
- APICloud App开发上手经验之模块调用
- App跨平台开发框架分析
- Spark App 血缘解析方案
- Slidepad for Mac(iPad式APP切换工具)
- 苹果的app上架被黑了怎么办?
- Uni开发的app,使用Windows S10,放在ios上,全程跟着一个马平川。
- CLI 发行uni-app到微信小程序
- 最佳Linux学习之路:一款轻松促进学习的App(学linux的app)
- Linux学习之路,体验移动APP的魅力(linux学习app)
- 只有 50 万用户,却估值 4 亿美金:这个 App 做成了社交版美团
- Boosting Mobile App Automation with LinuxEnabled Appium: A Comprehensive Guide(linuxappium)
- 使用SQLServer实现安卓App数据库连接(sqlserver 安卓)
- 使用App连接MySQL数据库快速实现数据分析(app连mysql数据库)
- 让App连接MySQL轻松实现数据库连接(app连mysql)
- APP访问MySQL从零开始(app 访问mysql)
- 拓展业务用App组合MySQL实现跨平台数据共享(app组合mysql)
- App测试技术利用Mysql助力质量保障(app测试mysql)
- App与MySQL的通信实现数据交互的新方式(app和mysql通信)
- 学习MYSQL必备下载一款视频APP,轻松入门数据库技术(MYSQL下载视频app)
- 使用MYSQL技术打造高效电影App下载平台(MYSQL下载电影app)
- 不堪忍受App Store审核折磨 FlickType输入法宣布停更