0%

scala简单使用

scala简单使用

由于大数据的兴起,spark的使用越来越多,然而带动了scala语言的兴起,scala是一门多范式(面向对象、函数式编程)的编程语言

以一个小事例来说明

1
2
3
4
5
6
7
8
object Hello {
// def表示是一个方法 main为方法名称
// args: Array[String]为入参 args参数名 Array[String]类型 参数名在前,类型在后
// Unit 相当于java中的void,表示返回值为空
def main(args: Array[String]): Unit = {
println("Hello")
}
}

使用scalac命令编译scala文件,然后使用scala运行编译出来的class文件

object表示一个伴生对象,Hello为对象的名字,底层真正的名字为Hello$,对象是Hello$类型的一个静态对象MODULE$
编译之后会生成两个class文件,Hello.class 和Hello$.class

Hello.class

1
2
3
4
5
6
public final class Hello
{
public static void main(final String[] args) {
Hello$.MODULE$.main(args);
}
}

Hello$.class

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public final class Hello$
{
public static final Hello$ MODULE$;

static {
MODULE$ = new Hello$();
}

public void main(final String[] args) {
Predef$.MODULE$.println((Object)"Hello");
}

private Hello$() {
}
}

在scala运行时,先从Hello的main开始执行,Hello.MODULE$.main(args),调用Hello$类的main方法Predef$.MODULE$.println((Object)”Hello”);