if Statement

if statements follow C syntax:


#![allow(unused)]
fn main() {
if foo(x) {
    print("It's true!");
} else if bar == baz {
    print("It's true again!");
} else if baz.is_foo() {
    print("Yet again true.");
} else if foo(bar - baz) {
    print("True again... this is getting boring.");
} else {
    print("It's finally false!");
}
}

Braces Are Mandatory

Unlike C, the condition expression does not need to be enclosed in parentheses ( .. ), but all branches of the if statement must be enclosed within braces { .. }, even when there is only one statement inside the branch.

Like Rust, there is no ambiguity regarding which if clause a branch belongs to.


#![allow(unused)]
fn main() {
// Rhai is not C!
if (decision) print("I've decided!");
//            ^ syntax error, expecting '{' in statement block
}

if-Expressions

Like Rust, if statements can also be used as expressions, replacing the ? : conditional operators in other C-like languages.


#![allow(unused)]
fn main() {
// The following is equivalent to C: int x = 1 + (decision ? 42 : 123) / 2;
let x = 1 + if decision { 42 } else { 123 } / 2;
x == 22;

let x = if decision { 42 }; // no else branch defaults to '()'
x == ();
}