控制流
Toka 提供了现代的控制流结构,帮助你构建清晰、富有表现力的程序。
If / Else
import std/io::println
fn check_temp(temp: i32) {
if temp > 35 {
println("天气热!")
} else if temp < 10 {
println("天气冷!")
} else {
println("天气温和。")
}
}
Loop 循环
Toka 彻底废除了传统的 while 循环,并将所有的循环语义统一收拢在 loop 关键字下。这极大简化了编译器控制流分析,消除了语法歧义。
条件循环使用 loop condition {} 语法结构:
import std/io::println
auto count# = 0
loop count < 5 {
println("计数: {}", count)
count = count + 1
}
遍历数组
Toka 支持在数组上进行迭代:
import std/io::println
for auto i in [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] {
println("{}", i)
}
目前 Toka 暂不支持原生范围区间运算符(如 ..)。你可以在数组上进行迭代,或使用 loop 实现自定义迭代逻辑。
遍历集合
import std/io::println
auto items = ["苹果", "香蕉", "樱桃"]
for auto item in items {
println("{}", item)
}
带索引遍历:
import std/io::println
auto items2 = ["苹果", "香蕉", "樱桃"]
auto i# = 0
for auto item in items2 {
println("{}: {}", i, item)
i = i + 1
}
Break 和 Continue
使用标准关键字控制循环流程:
import std/io::println
auto iter# = 0
loop iter < 100 {
if iter == 50 {
break // 完全退出循环
}
if iter % 2 == 0 {
iter = iter + 1
continue // 跳到下一次迭代
}
println("{}", iter) // 打印奇数: 1, 3, 5, ..., 49
iter = iter + 1
}
Match(模式匹配)
Toka 使用 match 表达式提供直观的模式匹配支持:
fn describe(value: i32) -> str {
return match value {
0 => pass "零"
1 => pass "一"
auto v if v >= 2 && v <= 10 => pass "较小"
auto v if v >= 11 && v <= 100 => pass "中等"
_ => pass "较大"
}
}
_ 通配符匹配任意值,作为默认情况使用。