制御フロー
条件分岐、ループ、match 式。
制御フロー
Sounio には if, while, for, match といった馴染みのある制御フローがあります。
if / else
if は式なので、結果をバインドできます:
let max = if a > b { a } else { b }
while
fn main() with IO {
var count = 0
while count < 3 {
println(count)
count = count + 1
}
}
for-in
範囲(range):
fn main() with IO {
// Exclusive range: 0..5
var sum = 0
for i in 0..5 {
sum = sum + i
}
// Inclusive range: 0..=5
var sum_inclusive = 0
for i in 0..=5 {
sum_inclusive = sum_inclusive + i
}
}
配列と Vec<T>:
fn main() with IO {
let arr = [10, 20, 30]
for x in arr {
println(x)
}
let vec: Vec<i32> = [1, 2, 3, 4]
for x in vec {
println(x)
}
}
break と continue:
fn main() with IO {
for i in 0..10 {
if i % 2 == 0 {
continue
}
if i >= 7 {
break
}
println(i)
}
}
match
fn main() with IO {
let x = 1
let y = match x {
0 => 10
1 => 20
_ => 30
}
println(y)
}
仕様メモ: match ガード、範囲パターン、より豊かな enum パターンは言語の方向性に含まれます。移植性のある例を書くときは、できるだけ単純な
matchを使ってください。