Flujo de Control
Condicionales, bucles y expresiones match.
Flujo de Control
Sounio ofrece construcciones de control de flujo familiares: if, while, for y match.
if / else
if es una expresión, por lo que puedes asignar su resultado:
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
Rangos:
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
}
}
Arrays y 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 y 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)
}
Nota de la spec: guards, patrones de rango y patrones más ricos de enum forman parte de la dirección del lenguaje. Prefiere la forma más simple de
matchal escribir ejemplos portátiles.