运行Scala应用 Main方法
来源:互联网 发布:淘宝云客服平台 编辑:程序博客网 时间:2024/05/16 11:27
本文章将介绍运行如何运行scala程序。在Java中,一个类要能独立运行,那么必须具有静态的main方法,如下所示。
Scala借鉴了这种模式。在Scala中,为了运行一个Scala程序,你必须定义一个Scala对象并为其定义一个main方法:
Scala中的Object相当于java中的静态类,在其上可以定义静态的方法。Scala允许一个类定义自己的“伴生对象”(Companion Object),它们具有相同的名字,必须位于同一个文件中,并且可以互相引用各自的私有成员。Scala的Object也可以独立存在。如果一个Scala Object没有伴生对象,我们称之为“独立对象”(Standardalone Object),反之,对象和类互为友元。
上述代码main方法中的参数args是从命令行中传入的参数列表,具体用法和java类似。
为了使代码更简洁,Scala还提供了另外一种运行Scala程序的方式,那就是直接继承scala.Application接口(Trait)。
直接继承自Application的运行方式:
之所以这里无须定义main方法,那是因为在Application这个接口中定义了一个main方法,main方法在执行时会初始化RunAppWithoutMain这个对象,并执行它的主构造方法,而所
有直接写在对象中的代码都会被scala编译器收集到主构造方法中,于是就被运行了。
第二种方法虽然省略了一些代码,但是也有一些副作用。
直接继承自Application导致的副作用:
1. 无法接受命令行参数。因为args参数不会被传入
2. 在Scala中,如果一个程序是多线程的,那么这个程序必须具有一个main方法。所以第二种写法只能适用于单线程的程序
3. Application这个接口在执行一个程序的代码之前,需要进行一些初始化。而某些JVM不会对这些初始化代码进行优化。
所以第二种方法只适用于一些非常简单的场合,大部分情况不推荐使用。
- public static void main(String[] args) {
- ...
- }
Scala借鉴了这种模式。在Scala中,为了运行一个Scala程序,你必须定义一个Scala对象并为其定义一个main方法:
- object RunAppDemo {
- def main(args:Array[String]) {
- println("Hello, Scala")
- }
- }
Scala中的Object相当于java中的静态类,在其上可以定义静态的方法。Scala允许一个类定义自己的“伴生对象”(Companion Object),它们具有相同的名字,必须位于同一个文件中,并且可以互相引用各自的私有成员。Scala的Object也可以独立存在。如果一个Scala Object没有伴生对象,我们称之为“独立对象”(Standardalone Object),反之,对象和类互为友元。
上述代码main方法中的参数args是从命令行中传入的参数列表,具体用法和java类似。
为了使代码更简洁,Scala还提供了另外一种运行Scala程序的方式,那就是直接继承scala.Application接口(Trait)。
直接继承自Application的运行方式:
- object RunAppWithoutMain extends Application {
- println("runing scala app without main")
- }
之所以这里无须定义main方法,那是因为在Application这个接口中定义了一个main方法,main方法在执行时会初始化RunAppWithoutMain这个对象,并执行它的主构造方法,而所
有直接写在对象中的代码都会被scala编译器收集到主构造方法中,于是就被运行了。
第二种方法虽然省略了一些代码,但是也有一些副作用。
直接继承自Application导致的副作用:
1. 无法接受命令行参数。因为args参数不会被传入
2. 在Scala中,如果一个程序是多线程的,那么这个程序必须具有一个main方法。所以第二种写法只能适用于单线程的程序
3. Application这个接口在执行一个程序的代码之前,需要进行一些初始化。而某些JVM不会对这些初始化代码进行优化。
所以第二种方法只适用于一些非常简单的场合,大部分情况不推荐使用。
0 0
- 运行Scala应用 Main方法
- 运行Java应用必须通过main()方法吗?
- 运行Java应用必须通过main()方法吗?
- 如果你刚第一次用itellingj编写scala,并且发现运行不了main方法
- scala学习-Linux命令行运行jar包传入main方法参数
- scala初学main方法参数解析
- Android Studio运行main方法
- 运行jar中的Main方法(Main-Class)
- android 程序中运行main方法
- android项目下运行main方法
- 在android中运行java main方法
- 在android中运行java main方法
- 在android中运行java main方法
- 在android中运行java main方法
- Eclipse运行项目找不到main方法
- IDEA 附带参数运行main方法
- AndroidStudio运行java的main方法
- IDE下多次运行main方法
- c++如何自动生成变量名
- contentprovider的示例代码
- C++ char*,const char*,string的相互转换
- 【Unity】射线中LayerMask参数的使用方式
- 创建一个大小为400*400的三通道的RGB图像。将它的全部元素置0.使用指针算法将以(100,100)与(300,300)为项点绘制一个绿色的矩形。
- 运行Scala应用 Main方法
- Xcode更新之后插件失效
- 在VirtualBox虚拟机中运行ubuntu 常见问题汇总
- 一道简单的题学到的东西
- 怎样用 Android Annotations 写出高性能代码
- 拜勒公式
- jQuery Ajax 实例
- 数据归一化和两种常用的归一化方法
- JavaIO流