控制流
条件语句、循环和匹配表达式。
控制流
控制流是语言中最安全的部分之一,但仍然受益于保守的示例。本页聚焦于在入职培训和阅读当前固定件时仍然有用的形式。
当前合同
if仍然是一个以表达式为导向的简单分支形式。while和for是支持教学表面的一部分,用于循环。match对于分支和理解检查器中耗尽行为如何演变都非常重要。
代表控制流
let max = if a > b { a } else { b }
while count < 3 {
count = count + 1
}
match state {
0 => println("冷")
_ => println("热")
}
在哪里检查行为
self-hosted/parser/exprs.sio、self-hosted/parser/stmts.sio和self-hosted/parser/patterns.sio定义了大部分相关的语法处理。self-hosted/check/patterns.sio、self-hosted/check/exhaustiveness.sio和self-hosted/check/pat_decision.sio是检查匹配相关语义的地方。tests/run-pass/仍然是查找当前示例的合适位置,这些示例是编译器今天接受的。
实用指南
- 在编写公开文档时,偏好简单的分支和匹配示例。
- 如果您记录了高级模式匹配行为,请验证它与当前检查器匹配,而不是假设设计笔记和工件总是匹配。
- 将规范视为更大的意图,将固定件视为当前行为的最佳证明。