一、认识 Scala
Scala 语言的名称来自 Scalable,即扩展的。Scala 语言被设计成为可以随着使用者的需求而扩展。
Scala 运行在 JVM 上,可以与 Java 库无缝衔接,可以用来编写脚本也可以用来构建大型系统。
Scala 是一种类型优雅的语言,它是静态类型的,但是仅在需要的地方显式的定义类型。Scala 从面向对象和函数式语言两方面获得了强大的特性,然后用全新的理念将它们完美的整合成一个整体。
Scala 具有以下特点:
-
Scala 是兼容的,Scala 程序会被编译成 JVM 字节码,且运行时的性能与 Java 不相上下,Scala 可以调用 Java 方法,访问 Java字段,继承 Java 类和实现 Java 接口,这些都不需要特别的语法就可以实现。
-
Scala 是简洁的,Scala 程序一般都很短,相同的功能 Scala 代码要比 Java 代码少一半左右。Scala 的语法避免了一些束缚 Java 程序的固定写法,比如 Scala 程序中分号是可选的,Scala 中含有类型推断,重复的类型信息可以被忽略。
在 Java 中和 Scala 中定义一个类的代码如下:
class Coffee { private String name; private float price; public Coffee (String name, float price) { this.name = name; this.price = price } }class Coffee(name:String, price:Float)Scala 中只需要一行代码就可以完成。
-
Scala 是高级的,Scala 可以通过夯筑提升接口的抽象级别来帮助管理复杂性。
-
Scala 是静态类型的,Scala 是一种具有非常高级的静态类型系统的语言。它以 Java 内嵌类型系统为基础,允许使用泛型参数化类型,使用交集组合类型及抽象类型隐藏类型细节。
二、Scala 解释器
Scala 提供了一个交互式的解释器,只要在解释器中输入表达式,它就能计算并打印结果值,Scala 的交互式 shell 叫做 scala,安装 Scala 之后在命令行输入 scala 即可进入解释器中;
$ scala
Welcome to Scala 2.12.14 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_261).
Type in expressions for evaluation. Or try :help.
scala> 2 + 3
res0: Int = 5
scala>
运行输出的信息依次为:
- 自动产生的或者用户定义的名称说明计算的值(res0,表示第一个结果)
- 冒号(:)及表达式的类型(Int)
- 等号(=)
- 表达式计算的结果(3)
Int 类型代表 scala 包中的 Int 类,scala 的包与 Java 的包类似,都可以对全局命名空间进行分区并提供了信息隐藏机制。
所有的 Java 类在 scala 包中都有对应的类,scala.Boolean 对应 Java 中的 boolean,scala.Float 对应 Java 中的 float。
在 Scala 代码编译成 字节码的时候,Scala 编译器会使用 Java 的原始类代替以优化性能。
解释器中返回的 res0 是一个变量名,存储了结果数据,也可以在后续代码中使用;
scala> res0 * 10
res1: Int = 50
println 函数可以输出字符串,与 Java 中的 System.out.println 一样;
scala> println("Hello,Scala World")
Hello,Scala World
持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第2天,点击查看活动详情