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 in Scala相关推荐
- Scala项目启动方式:extends App和main的区别
启动一个Scala项目,有两种方法: 利用App特质: object Application extends App {println("Hello World") } 使用mai ...
- Scala入门到精通——第七节:类和对象(二)
本节主要内容 单例对象 伴生对象与伴生类 apply方法 应用程序对象 抽象类 单例对象 在某些应用场景下,我们可能不需要创建对象,而是想直接调用方法,但是Scala语言并不支持静态成员,scala通 ...
- Scala与Java差异(六)之类定义
一.类定义 (1)定义类,包含field以及方法 class ScalaClass {private var field = "one"def aMethod() { print( ...
- Scala Cookbook读书笔记 Chapter 3.Control Structures 第一部分
3.0 总体介绍 Scala中的if/then/else结构和Java中很像,但是它还可以用来返回一个值.比如Java中用的三目运算,在Scala中只需要使用正常的if语句即可. val x = if ...
- sbt编程语言scala的构建工具配置及项目构建(附带网盘下载)
SBT简介 SBT 是 Scala 的构建工具,全称是 Simple Build Tool, 类似 Maven 或 Gradle. Java可以用Maven快速构建项目,scala用SBT快速构建一个 ...
- 【用户画像】标签任务开发流程(源码之实体类、工具类、配置文件、DAO层)
文章目录 一 代码实现 0 开发主线 1 实体类 (1)TagInfo (2)TaskInfo (3)TaskTagRule 2 工具类 (1)连接sql的工具类 测试 (2)专门读取properti ...
- Spark官方文档整理:spark-core
Spark 官方文档 1,spark 概述 Apache Spark 是一个快速通用的集群计算系统,它提供了提供了java,scala,python和R的高级API,以及一个支持一般图计算的优化引擎. ...
- Apache Iceberg 数据湖从入门到放弃(2) —— 初步入门
在介绍如何使用Iceberg之前,先简单地介绍一下Iceberg catalog的概念.catalog是Iceberg对表进行管理(create.drop.rename等)的一个组件.目前Iceber ...
- 1 P1001 A+B Problem AC100分
题目背景 强烈推荐新用户必读帖. 不熟悉算法竞赛的选手请看这里: 算法竞赛中要求的输出格式中,不能有多余的内容,这也包括了"请输入整数 \bm aa 和 \bm bb" 这一类的提 ...
最新文章
- python dataframe 计算上下两行的差值_用Python进行数据清洗!
- Android Studio安装Genymotion插件
- 用十条命令在一分钟内检查Linux服务器性能
- 全国高校计算机考试用的什么版本,全国高校计算机等级考试与全国计算机等级考试,有区别吗...
- 【解决】打印机只打印第一页纸的问题
- 关于反射程序集的心得
- python语法学习第一天--变量、运算符、数据类型
- 支持linux的翻译软件,CentOS 6.4下安装翻译软件StarDict
- 河北工业大学 高等数学学习资料分享(课件,录屏,教材,答案)
- linux下的遥控器软件下载,万能遥控器软件
- 雷达基础系列文章之四:雷达专业国内期刊
- PicGo的安装与使用
- 网页数据提取----网络投票软件开发(续1)
- mysql每组排序后取前2条,并修改数据
- [软件测试]软件测试的原则及软件质量
- Camera--(7)手机双摄像头原理及产业解析
- VS C#-EXE文件如何将ICO图片添加进去
- php短网址生成原理,php 生成短网址原理及代码
- Linux定时清理日志
- 一个复杂的json例子
热门文章
- 将网页保存为webarchive文件的代码
- ASP.NET和C#中对XML的操作,以及简单的xml与xsl !
- Mac 上 Sublime Text3-Package control-console安装失败解决方案
- SDWebImage实现分析
- 随记一个C的毫秒级群PING
- Json.net/Newtonsoft 3.0 新特性JObject/Linq to Json
- 优化案例(part3)--Aberrance suppresse dspatio-temporal correlation filters for visual object tracking
- 文献记录(part78)--Structure-Constrained Low-Rank Representation
- JavaScript入门(part9)--函数
- Django从理论到实战(part47)--ListView类