目录
一、Scala简介
1.1 概念
Scala 全称为 Scalable Language,即“可伸缩的语言”,之所以这样命名,是因为它的设计目标是希望伴随着用户的需求一起成长。Scala 是一门综合了面向对象和函数式编程概念的静态类型的编程语言,它运行在标准的 Java 平台上,可以与所有的 Java 类库无缝协作。
1.2 特点
1. Scala是面向对象的
Scala 是一种面向对象的语言,每个值都是对象,每个方法都是调用。举例来说,如果你执行 1+2,则对于 Scala 而言,实际是在调用 Int 类里定义的名为 + 的方法。
2. Scala是函数式的
Scala 不只是一门纯的面对对象的语言,它也是功能完整的函数式编程语言。函数式编程以两大核心理念为指导:
函数是一等公民;
程序中的操作应该将输入值映射成输出值,而不是当场修改数据。即方法不应该有副作用。
1.3 Scala的优点
1. 与Java的兼容
Scala 可以与 Java 无缝对接,其在执行时会被编译成 JVM 字节码,这使得其性能与 Java 相当。Scala 可以直接调用 Java 中的方法、访问 Java 中的字段、继承 Java 类、实现 Java 接口。Scala 重度复用并包装了原生的 Java 类型,并支持隐式转换。
2. 精简的语法
Scala 的程序通常比较简洁,相比 Java 而言,代码行数会大大减少,这使得程序员对代码的阅读和理解更快,缺陷也更少。
3. 高级语言的特性
Scala 具有高级语言的特定,对代码进行了高级别的抽象,能够让你更好地控制程序的复杂度,保证开发的效率。
4. 静态类型
Scala 拥有非常先进的静态类型系统,Scala 不仅拥有与 Java 类似的允许嵌套类的类型系统,还支持使用泛型对类型进行参数化,用交集(intersection)来组合类型,以及使用抽象类型来进行隐藏类型的细节。通过这些特性,可以更快地设计出安全易用的程序和接口。
二、Scala基本数据类型和运算符
一、数据类型
1.1 类型支持
Scala 拥有下表所示的数据类型,其中 Byte、Short、Int、Long 和 Char 类型统称为整数类型,整数类型加上 Float 和 Double 统称为数值类型。Scala 数值类型的取值范围和 Java 对应类型的取值范围相同。
数据类型 |
描述 |
Byte |
8 位有符号补码整数。数值区间为 -128 到 127 |
Short |
16 位有符号补码整数。数值区间为 -32768 到 32767 |
Int |
32 位有符号补码整数。数值区间为 -2147483648 到 2147483647 |
Long |
64 位有符号补码整数。数值区间为 -9223372036854775808 到 9223372036854775807 |
Float |
32 位, IEEE 754 标准的单精度浮点数 |
Double |
64 位 IEEE 754 标准的双精度浮点数 |
Char |
16 位无符号 Unicode 字符, 区间值为 U+0000 到 U+FFFF |
String |
字符序列 |
Boolean |
true 或 false |
Unit |
表示无值,等同于 Java 中的 void。用作不返回任何结果的方法的结果类型。Unit 只有一个实例值,写成 ()。 |
Null |
null 或空引用 |
Nothing |
Nothing 类型在 Scala 的类层级的最低端;它是任何其他类型的子类型。 |
Any |
Any 是所有其他类的超类 |