Rust类型转换 - 别名
type语句声明可以以现有类型被用来给一个新的名字。类型必须有%uA0CamelCase%uA0
名称, 或者编译器会提出警告。例外(异常)是原始类型:%uA0usize
,f32
, 等.
// `NanoSecond` is a new name for `u64`. type NanoSecond = u64 type Inch = u64 // Use an attribute to silence warning. #[allow(non_camel_case_types)] type u64_t = u64 // TODO ^ Try removing the attribute // Use an attribute to silence warnings #[allow(trivial_numeric_casts)] fn main() { // `NanoSecond` = `Inch` = `u64_t` = `u64`. let nanoseconds: NanoSecond = 5 as u64_t let inches: Inch = 2 as u64_t // Note that type aliases *don&apost* provide any extra type safety, because // aliases are *not* new types println!("{} nanoseconds + {} inches = {} unit?", nanoseconds, inches, nanoseconds + inches) }
使用别名主要是减少输入例如%uA0IoResult<T>%uA0是类型Result<T, IoError>%uA0的别名.