1.1. Scala 简介与环境搭建
1.1.1. Scala 语言概述
Scala(Scalable Language)是一门运行在 JVM 上的多范式编程语言, 由 Martin Odersky 于 2004 年发布。它将 面向对象编程 与 函数式编程 融合在一起,旨在以简洁、优雅的方式表达通用编程模式。
1.1.1.1. 核心特性
双范式融合:类是纯粹的 OOP,函数是一等公民的 FP
静态强类型:借助类型推断,代码简洁且安全
表达力强:高阶函数、模式匹配、隐式转换等高级特性
与 Java 互操作:直接调用 Java 库,运行在 JVM 上
并发友好:Actor 模型(Akka)、Future、异步编程
1.1.1.2. 典型应用场景
大数据平台:Apache Spark、Apache Flink 的核心语言
高并发后端:Akka HTTP、Play Framework、http4s
数据工程与 ETL:类型安全的批处理与流处理
函数式架构:结合 cats / ZIO 构建纯函数式系统
1.1.2. 环境搭建
1.1.2.1. 安装 JDK
Scala 需要 JDK 11 或更高版本:
# 验证 JDK
java -version
# 建议使用 Adoptium (Eclipse Temurin)
# https://adoptium.net/
小技巧
推荐使用 JDK 17 LTS 或 JDK 21 LTS,兼顾稳定性和新特性。
1.1.2.2. 安装 SBT(Scala 标准构建工具)
SBT(Scalable Build Tool)是 Scala 生态中最常用的构建工具。
Windows
# 通过 scoop 安装
scoop install sbt
# 或下载 MSI 安装包
# https://www.scala-sbt.org/download.html
macOS
# 通过 Homebrew
brew install sbt
Linux
# 通过 SDKMAN
curl -s "https://get.sdkman.io" | bash
sdk install sbt
验证安装:
sbt --version
1.1.2.3. IDE 选择
IDE |
说明 |
|---|---|
IntelliJ IDEA |
首选的 Scala IDE,安装 Scala 插件即可获得完整支持 |
VS Code |
配合 Metals LSP 服务器,轻量选择 |
Scala CLI |
交互式命令行,适合学习和快速实验 |
1.1.3. 快速开始:Hello World
1.1.3.1. 创建 SBT 项目
mkdir hello-scala
cd hello-scala
创建 build.sbt:
lazy val root = project
.in(file("."))
.settings(
name := "hello-scala",
version := "0.1.0",
scalaVersion := "3.6.2", // Scala 3 最新稳定版
)
创建源码文件:
@main def hello(): Unit =
println("Hello, Scala!")
运行项目:
sbt run
# 输出: Hello, Scala!
备注
使用 sbt new scala/scala3.g8 可快速生成标准 Scala 3 项目模板。
1.1.4. Scala 2 与 Scala 3
特性 |
Scala 2 |
Scala 3 |
|---|---|---|
语法 |
传统 OOP/FP 混杂风格 |
更简洁,少用符号 |
隐式转换 |
|
|
枚举 |
|
原生 |
联合类型 |
不支持 |
原生 |
宏 |
不稳定,API 复杂 |
稳定,基于引用的新系统 |
交集类型 |
不支持 |
原生 |
小技巧
新项目建议直接使用 Scala 3。本文档以 Scala 3 为主,必要时标注与 Scala 2 的差异。