то установить 0 и закастить к u32
В моем понимании
let c: i64 = a - b;
let c: u32 = if c < 0 {0} else {c as u32};
но возможно есть более элегантный вариант?
(a - b as i64) .try_into() .unwrap_or_default() Ну или unwrap_or(1), не понимаю, условие поменялось или нет. От i64 не отнять u32, надо скастить, а вот из 64 в 32 надо try_into, может быть слишком большой инт, который не поместится в u32 -> можно обработать это/можно unwrap в ноль как здесь
Не то чтобы не поместится, просто будет другое число очень грубо говоря, если a > u32::MAX
Обсуждают сегодня