if
match
があります。a := 10
b := 10
c := 10
if a == 10 { // aが10だったら
println("a = 10")
} else if a < 10 { // aが10未満だったら
println("a < 10")
} else { // それ以外
println("a > 10")
}
// >>> a = 10
if a == 10 && b == 10 { // a と b が10 だったら
println("a and b = 10")
} else if a == 10 || b == 10 { // a か b が10 だったら
println("a or b = 10")
}
// >>> a and b = 10
if a != c { // aがcと同じでなければ
println("a != c")
} else if a <= c { // aがc以下なら
println("a ≦ c")
}
// >>> a ≦ c
x := 10
ans := if x % 2 == 0 { "even" } else {"odd"} // % 2は2で割った余り
println(ans)
// "even"
switch
といえばなんとなく伝わりますかね。if
と同じ内容を書く場合、a := 10
b := 10
c := 10
match true {
a == 10 { println("a = 10")} // aが10だったら
a < 10 { println("a < 10")} // aが10未満だったら
else { println("a > 10")}
}
match true {
a == 10 && b == 10 { println("a and b = 10")} // a と b が10 だったら
a == 10 || b == 10 { println("a or b = 10")} // a か b が10 だったら
else {}
}
match true {
a != c { println("a != c")} // aがcと同じでなければ
a <= c { println("a ≦ c")} // aがc以下なら
else {}
}
match <条件> {
<比較> { ... }
else { ... }
}
x := 10
msg := match x%2 {
0 { "even" }
else {"odd"}
}
println(msg)
// even
,
で区切って複数条件を指定することが出来ます。q := 3
println(match q {
1,2,3 { "top 3!" }
else { "over" }
})
// >>> top 3!