通过例子学 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是强类型语言 没有隐式转换
相关推荐
小灰灰搞电子1 天前
Rust std::vec::Vec<T>动态数组:所有相关 API 全面介绍
开发语言·rust
学习星球1 天前
CodeWhale 深度剖析:从 DeepSeek-TUI 到 40.9K Star 的 Rust 终端编程 Agent
开发语言·后端·rust
小灰灰搞电子1 天前
Rust 相关容器(集合)详解
开发语言·容器·rust
小灰灰搞电子2 天前
Rust+Slint 实现侧滑菜单栏源码分享
开发语言·rust·抽屉式菜单栏
qq_406981032 天前
大白话rust系列01注释
开发语言·rust
zLLM_Lab2 天前
GPU kernel 已返回,显存为什么还不能释放?用 Rust 管理 CPU/GPU 完整生命周期
rust·gpu
对象存储与RustFS2 天前
给 RustFS 拆多租户权限:IAM 用户、组与策略的实战
后端·rust·开源
小灰灰搞电子2 天前
Rust+Slint 实现蜂巢菜单源码分享
开发语言·rust·蜂巢菜单.
mldong2 天前
流程实例如何沿着箭头走到结束:Rust 工作流引擎的执行内核
架构·rust