Scala 语法速查
共 26 条 Scala 常用语法,覆盖基础语法、函数与高阶、类与特质、集合、命令行工具 五组内容。支持搜索与分类筛选,点击即可复制。
基础语法
val 不可变、var 可变。
| 语法 / 命令 | 说明 |
|---|---|
| 只读与可变变量(类型可推断) | |
| 显式类型声明 | |
| 字符串插值 | |
| 模式匹配 | |
| if 是表达式,可直接返回值 |
函数与高阶
函数是一等公民。
| 语法 / 命令 | 说明 |
|---|---|
| 方法与默认参数 | |
| 函数值(匿名函数) | |
| 映射(也可写 list.map(_ * 2)) | |
| 过滤(_ 占位) | |
| 左折叠归约 | |
| 递归 |
类与特质
case class 与 trait。
| 语法 / 命令 | 说明 |
|---|---|
| 类与构造参数(val 自动成为字段) | |
| 样例类(自动 equals / copy / 模式匹配) | |
| 单例对象(类似静态) | |
| 特质(类似接口,可带实现) | |
| 继承与实现(extends with) | |
| 用样例类做模式匹配提取字段 |
集合
不可变集合为主。
| 语法 / 命令 | 说明 |
|---|---|
| 列表与向量 | |
| 映射 | |
| 分组与排序 | |
| 去重、取前若干、展平 | |
| 归约与求和 |
命令行工具
sbt / scala-cli。
| 语法 / 命令 | 说明 |
|---|---|
| 启动 REPL | |
| 直接运行脚本 | |
| 在 sbt 项目中编译 / 运行 / 测试 | |
| 清理并打包 |
使用说明
Scala 语法速查:基础语法、函数与高阶、类与特质、集合、命令行工具;支持搜索与分类筛选,点击即可复制。
- 按用途点分类:基础语法、函数与高阶、类与特质、集合、命令行工具。
- 点「语法 / 命令」列复制片段,替换类型与集合名。
- 数据载体优先用 case class;集合变换优先用 map / filter / fold。
- 构建用 sbt(见 Maven / Gradle 速查亦可对照)。
常见问题
- val 和 var 有什么区别?
- val 是不可变引用(赋值后不能重新指向),var 可变。Scala 鼓励尽可能用 val,让代码更易推理、更利于并发。
- case class 和普通 class 有什么区别?
- case class 自动生成 equals、hashCode、toString 与 copy,并支持模式匹配解构,非常适合表示不可变数据。
- trait 和 Java 接口有什么区别?
- trait 可以有方法实现与字段,一个类可混入多个 trait(with),比 Java 接口更灵活;Java 8 后接口也有了默认方法,二者理念趋同。
- map 里的 _ 是什么意思?
- 下划线是参数占位符,list.map(_ * 2) 等价于 list.map(x => x * 2);多参数场景要写清楚,如 foldLeft(0)(_ + _)。
延伸阅读
相关工具
NMD
Nomad 速查
nomad job run / HCL / alloc logs 速查
ASTRO
Astro 速查
astro add / 内容集合 / client:load 速查
REMIX
Remix 速查
loader / action / Form / nested routes 速查
SOLID
SolidJS 速查
createSignal / Show / For / createStore 速查
KOA
Koa 速查
new Koa / ctx.body / 洋葱模型 / @koa/router 速查
ECHO
Echo 速查
e.GET / c.Bind / middleware / HTTPError 速查