@@ -16,6 +16,8 @@
|
||||
- 块式分支内部的普通语句必须用分号结尾。
|
||||
- 控制流块的 `begin ... end` 后可以加分号也可以不加(语法都允许)。
|
||||
- `for` 支持 `to`、`downto`、可选 `step`,以及 `for i, v in array` 遍历。
|
||||
- 计数 `for` 的初值、终值和步长确定后,循环次数随之固定;循环体内不要给控制变量赋值。
|
||||
- `for i, v in array` 遍历期间,不要修改被遍历数组或其中元素。
|
||||
- `while` 和 `repeat ... until` 都可直接使用;`repeat` 至少会先执行一轮再判断结束条件。
|
||||
- `break` 会跳出当前最近一层循环,`continue` 会跳过当前轮剩余语句。
|
||||
- `case ... of ... else ... end` 可作为语句形态生成;`end` 后可以加分号也可以不加。
|
||||
@@ -154,6 +156,7 @@ for i, value in numbers do
|
||||
|
||||
- 依次输出 `10`、`120`、`230`
|
||||
- 这说明 `for i, value in numbers` 里的 `i` 从 `0` 开始
|
||||
- 遍历期间把 `numbers` 当成只读集合;需要修改时先遍历副本,或在循环结束后统一写回
|
||||
|
||||
代码块身份:输出片段
|
||||
|
||||
@@ -495,6 +498,8 @@ end
|
||||
- 以为 `try ... finally` 会吞掉异常。
|
||||
- 在还没搞清表达式规则前,先把复杂业务函数塞进条件里。
|
||||
- 把控制流问题和函数文件模型问题混在一起排查。
|
||||
- 在计数 `for` 循环体里给控制变量赋值。
|
||||
- 在 `for ... in` 遍历期间修改被遍历数组或其中元素。
|
||||
|
||||
代码块身份:反例 / 不可照写
|
||||
|
||||
|
||||
Reference in New Issue
Block a user