大家好,我是程序员柏风,AI 最全的 Vibecoding 学习地图 http://coderoadmap.cn 作者。
Scala 是什么
Scala 是运行在 JVM 上的多范式语言,融合面向对象与函数式编程,语法表达力强、类型系统丰富。典型场景包括大数据(Spark)、高并发后端(Akka/Pekko)、类型安全 DSL 与 Java 生态互操作。本 track 对接 /roadmaps/scala 路线图;CodeRoadMap 主线仍是 Java / Spring Boot,Scala 作为 JVM 生态技能补充很有价值。
学习目标
- 了解 Scala 的典型应用场景与选型理由
- 安装 JDK 与 sbt,运行 Hello World
- 对照 Java / Kotlin 理解 Scala 在 JVM 生态中的位置
- 明确本 track 在 /roadmaps/scala 中的位置
核心概念
| 领域 | 示例 |
|---|---|
| 大数据 | Apache Spark(Scala API 为原生语言) |
| 高并发后端 | Akka / Apache Pekko、Play Framework |
| 函数式 Web | http4s、ZIO HTTP |
| 企业互操作 | 与 Java 类库无缝调用、渐进式迁移 |
Scala 编译为 JVM 字节码,与 Java 共享运行时与生态(Maven 仓库、JDBC、Spring 等)。与 Kotlin 相比,Scala 更偏函数式与类型级编程;与 Java 相比,语法更简洁、集合操作更声明式。
安装与验证
访问 scala-lang.org 与 sbt 官网。Windows 可用 winget install Scala.Scala 或 choco install sbt。
java -version
scala -version
sbt --version
第一个程序
@main def hello(): Unit =
println("Hello, CodeRoadMap!")
// 传统入口(Scala 2 风格)
object Main:
def main(args: Array[String]): Unit =
val name = if args.nonEmpty then args(0) else "World"
println(s"Hello, $name!")
scala-cli run hello.scala
# 或 sbt 项目内: sbt run
sbt 是 Scala 的构建工具,类似 Maven / Gradle;scala-cli 适合单文件快速实验。
与 Java 对照
| 维度 | Scala | Java |
|---|---|---|
| 范式 | OOP + FP 融合 | 以 OOP 为主,FP 逐步增强 |
| 语法 | 表达式导向、推断多 | 语句导向、显式类型多 |
| 并发 | Actor / Future / ZIO | 线程池 / Virtual Thread |
| 互操作 | 直接调用 Java 类 | 可调用 Scala 编译产物 |
| 构建 | sbt / Mill | Maven / Gradle |
深入 Java 后端见 java-fundamentals → spring-boot-essentials;Kotlin 对照见 kotlin-essentials。
练习
- 确认
java -version≥ 17 且sbt --version可用 - 用
scala-cli或sbt new创建项目并运行 Hello World - 浏览 /roadmaps/scala,标记「语言基础」节点
小结
Scala = JVM 生态 + 函数式表达力 + 与 Java 互操作。 下一课变量、控制流与基础语法。本 track 见 scala-essentials。