Scala 是什么
JVM 生态、sbt、与 Java/Kotlin 对照。
30 分钟
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 |