Более хорошая арифметика на примитивных типах в Rust

Есть ли лучший способ сделать арифметику для разных примитивных типов (с автоматическим продвижением вверх), чем явное приведение и распаковка?

Например, в случае, как:

let a: u8 = 1;
let b: u16 = 2;
let c: u32 = 3;

могу ли я как-то избавиться от всех приведений в:

let total: u64 = a.to_u64().unwrap() + b.to_u64().unwrap() + c.to_u64().unwrap();

1 ответ

Решение

Да, вы можете использовать as:

let total: u64 = a as u64 + b as u64 + c as u64;

More info on type casting: http://doc.rust-lang.org/reference.html

Другие вопросы по тегам