Продолжаю изучать
Rust и обнаружил интересное отличие в работе с условными конструкциями.
В
Swift есть как классический тернарный оператор, так и
if-expression:
// Тернарный оператор
let status = age >= 18 ? "взрослый" : "ребенок"
// If-expression (тоже работает!)
let access = if isAdmin { "полный" } else { "ограниченный" }
В
Rust тернарного оператора нет, есть только
if-expression:
let status = if age >= 18 { "взрослый" } else { "ребенок" };
let access = if is_admin { "полный" } else { "ограниченный" };
Оба подхода работают как выражения и возвращают значения.
В
Swift, где есть возможность выбора, мне нравится больше. Я использую тернарные операторы очень часто. Они короче и лучше читаются, если не использовать вложенные тернарные операторы - что является плохим тоном.