LINUX.ORG.RU

История изменений

Исправление mersinvald, (текущая версия) :

Это какой-то бред. Тернарный оператор работает только для булевой логики и писать match в таких местах — антипаттерн Rust'а. Вместо тернарного оператора используется конструкция if-else

let result = if a {1} else {0};
А вот match используется там, где тернарный оператор никаким боком не поможет:

enum A {
   B(u32),
   D(u32, u8, String, Vec<u64>)
}

match a {
   A::B(c) => println!("A::B({})", c)
   A::D(e, ..) => println!("A::D({}, ..", e)
}

Исходная версия mersinvald, :

Это какой-то бред. Тернарный оператор работает только для булевой логики и писать match в таких местах — антипаттерн Rust'а. Вместо тернарного оператора используется конструкция if-else

let result = if a {a.b} else {0};
А вот match используется там, где тернарный оператор никаким боком не поможет:

enum A {
   B(u32),
   D(u32, u8, String, Vec<u64>)
}

match a {
   A::B(c) => println!("A::B({})", c)
   A::D(e, ..) => println!("A::D({}, ..", e)
}