3 1 if

### Обычный if Оператор if и многие другие операторы возвращают значение как в rust. if может возвращать только одинаковые по типу значения.

let x = 10;
if (x == 10)
{
    println!("equal");
}
else
{
    println!("not eqrual");
}

Пример использования.

let res : int = if (str == "test") {10} else {30};

Присвоить переменной значение 10 если равенство верно и 30 если нет. Подробнее об этом синтаксисе 3 5 Возвращаемое значение

Статичный if

Мы можем определить выражение if как статичное и решать его на этапе компиляции (как в c++ constexpr) Тогда код в недостижимом пути не будет скомпилирован и мы можем вообще говоря возвращать из if разные типы.

#let const a = 10;
let b;
#if (a == 10)
{
    b = "hello";
}
#else
{
    b = 100;
}

В данном случае мы определяем переменную b как строковую со значением "hello"