v/vlib/v/gen/js/tests/optional.v

34 lines
493 B
V

module main
fn main() {
try_propagation() or { println('captured: $err') }
}
fn try_propagation() ? {
try_numbers() ?
}
fn try_numbers() ? {
for x in 1 .. 10 {
y := error_if_even(x) or { x + 1 }
println('$x rounded to $y')
error_if_prime(y) ?
}
}
fn error_if_even(num int) ?int {
if num % 2 == 0 {
return error('number is even')
}
return num
}
fn error_if_prime(num int) ?int {
for i in 2 .. num {
if num % i == 0 {
return error('$num is prime')
}
}
return num
}