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

2-1

原生类型
bash 复制代码
有符号整数(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(布尔型):只能是 true 或 false
单元类型(unit type):()。其唯一可能的值就是 () 这个空元组
bash 复制代码
数组(array):如 [1, 2, 3]
元组(tuple):如 (1, true)
rust 复制代码
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;
}
bash 复制代码
要点1 : 常规说明 后缀说明 类型推断 默认不可变 mut可变 shadow机制
字面量和运算符
rust 复制代码
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);
}
bash 复制代码
要点1 : rust 只有短路逻辑
要点2 : 位运算 与 或 异或 左移 右移
要点3 :  println!("0011 OR 0101 is {:04b}", 0b0011u32 | 0b0101); | 要求两个类型 一致 后面会被自动推断成u32
要点4 : 上面那个改类型 不是不能相减 而是 溢出范围了  如果是 3u32 - 2  就不会有事 
注意 : 这不是隐式转换, rust是强类型语言 没有隐式转换
相关推荐
Bigger9 小时前
Tauri(十五)——多窗口之间通信方案
前端·rust·app
techdashen9 小时前
Rust vs. Go: 在仅使用标准库时的性能测试
开发语言·golang·rust
一只小松许️11 小时前
Rust函数、条件语句、循环
开发语言·后端·rust
Yeauty11 小时前
三分钟掌握音频提取 | 在 Rust 中优雅地处理视频音频
后端·rust·ffmpeg·音视频·音频·视频
PaytonD14 小时前
使用 Rust 在 Windows 系统实现一个服务
rust
bluebonnet2716 小时前
【Rust】使用 Rust 语言实践完整的 TDD(测试驱动开发)流程
驱动开发·rust·tdd
数据知道16 小时前
【Rust】一文掌握 Rust 的详细用法(Rust 备忘清单)
开发语言·后端·rust
weixin_5025398516 小时前
rust学习笔记20-Trait
笔记·学习·rust
Kapaseker21 小时前
Bevy Plugin
rust·游戏开发
weixin_502539851 天前
rust学习笔记19-泛型
笔记·学习·rust