欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 能源 > 通过例子学 rust 个人精简版 2-1

通过例子学 rust 个人精简版 2-1

2025/2/21 3:13:24 来源:https://blog.csdn.net/BECOMEviolet/article/details/145664684  浏览:    关键词:通过例子学 rust 个人精简版 2-1

2-1

原生类型
有符号整数(signed integers):i8、i16、i32、i64、i128 和 isize(指针宽度)
无符号整数(unsigned integers): u8、u16、u32、u64、u128 和 usize(指针宽度)
浮点数(floating point): f32、f64
char(字符):单个 Unicode 字符,如 'a''α''∞'(每个都是 4 字节)
bool(布尔型):只能是 truefalse
单元类型(unit type):()。其唯一可能的值就是 () 这个空元组
数组(array):如 [1, 2, 3]
元组(tuple):如 (1, true)
fn main() {// 变量可以给出类型说明。let logical: bool = true;let a_float: f64 = 1.0;  // 常规说明let an_integer   = 5i32; // 后缀说明// 否则会按默认方式决定类型。let default_float   = 3.0; // `f64`let default_integer = 7;   // `i32`// 类型也可根据上下文自动推断。let mut inferred_type = 12; // 根据下一行的赋值推断为 i64 类型inferred_type = 4294967296i64;// 可变的(mutable)变量,其值可以改变。let mut mutable = 12; // Mutable `i32`mutable = 21;// 报错!变量的类型并不能改变。mutable = true;// 但可以用遮蔽(shadow)来覆盖前面的变量。let mutable = true;
}
要点1 : 常规说明 后缀说明 类型推断 默认不可变 mut可变 shadow机制
字面量和运算符
fn main() {// 整数相加println!("1 + 2 = {}", 1u32 + 2);// 整数相减println!("1 - 2 = {}", 1i32 - 2);// 试一试 ^ 尝试将 `1i32` 改为 `1u32`,体会为什么类型声明这么重要// 短路求值的布尔逻辑println!("true AND false is {}", true && false);println!("true OR false is {}", true || false);println!("NOT true is {}", !true);// 位运算println!("0011 AND 0101 is {:04b}", 0b0011u32 & 0b0101);println!("0011 OR 0101 is {:04b}", 0b0011u32 | 0b0101);println!("0011 XOR 0101 is {:04b}", 0b0011u32 ^ 0b0101);println!("1 << 5 is {}", 1u32 << 5);println!("0x80 >> 2 is 0x{:x}", 0x80u32 >> 2);// 使用下划线改善数字的可读性!println!("One million is written as {}", 1_000_000u32);
}
要点1 : rust 只有短路逻辑
要点2 : 位运算 与 或 异或 左移 右移
要点3 :  println!("0011 OR 0101 is {:04b}", 0b0011u32 | 0b0101); | 要求两个类型 一致 后面会被自动推断成u32
要点4 : 上面那个改类型 不是不能相减 而是 溢出范围了  如果是 3u32 - 2  就不会有事 
注意 : 这不是隐式转换, rust是强类型语言 没有隐式转换

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词