1.1 概述

  • Scala 是一门多范式(范式指的是编程方式)的静态类型(编译时检查类型)编程语言;
  • Scala 集成了面向对象编程和函数式编程的各种特性(多范式)
  • Scala 的作者是马丁·奥德斯基(Martin Odersky)**

📚 小知识:Scala 的作者还是主流 Java 编译器的作者;Spark 的兴起带动了 Scala 的发展

1.2 特性

  1. 面向对象
  2. 函数式的
  3. 静态类型

    1.2.1 面向对象

  • Scala 的一切值都是对象,可以说它是一门纯面向对象的语言
  • Scala 对象的类型和行为是由类和特质来描述的
  • Scala 类抽象机制的扩展有两种途径

    1. 子类继承
    2. 灵活的混入机制(mixin,作为多重继承的简单替代方案

      1.2.2 函数式的

  • Scala 一切函数都是值,可以说它是一门函数式语言

  • Scala 提供了轻量级的语法来定义匿名函数、支持高阶函数、允许函数嵌套、支持柯里化
  • Scala 样例类和内置支持的模式匹配使用了代数模型(许多函数式编程语言中都被使用)
  • Scala 对于那些并非类的成员函数,单例对象提供了便捷的方式去组织它们

    📝 补充说明

    • 通过对提取器的一般扩展,Scala 的模式匹配概念使用了 right-ignoring 序列模式
    • 利用 Scala 的模式匹配,可以编写类似正则表达式的代码处理 XML 数据

1.2.3 静态类型

Scala 拥有一个有着强大表达能力的类型系统,可以静态地强制以安全、一致的方式使用抽象;即通过编译时检查,保证代码的安全性和一致性
👉 **这个类型系统具体支持:**

  • 泛型类
  • 形变注解
  • 上、下 类型边界
  • 作为对象成员的内部类和抽象类型
  • 复合类型
  • 显示类型的自我引用
  • 隐式参数和隐式转化
  • 多态方法

    1.3 特点

  1. 多范式,支持面向对象和函数式编程
  2. Scala 源代码会被编译成 Java 字节码,然后运行与 JVM 之上,能直接调用现有的 Java 类库,实现两种语言无缝对接
  3. Scala 语言编写起来简洁高效

    1.4 学习要点⭐

  4. 学习 Scala 特点有的语法

  5. 搞清楚 Scala 和 Java 区别
  6. 如何规范使用 Scala