• IB-Rust-智能指针2

    Codes in lesson19 课程概述 Rc<T> RefCell<T> Weak<T> Rc<T> 引用计数指针什么是 Rc<T>? Rc 是 Reference Counted(引用计数) 的缩写 允许多所有者的共享所有权模型 举例说明使用 Box<T> 定义 cons list 的例子。这一次,我们希望创...
  • IB-Rust-生命周期

    Codes in lesson18 创建生命周期⽣命周期主要通过⽣命周期注解来创建和使⽤。⽣命周期注解是⼀种显式声明引⽤有效时间的⽅式,通常⽤’a、’b 这样的符号表示 生命周期类别fn‘a ⽣命周期注解 表明返回值的⽣命周期与输⼊参数的⽣命周期相同: 123fn longest<'a>(x: &'a str, y: &'a str)...
  • IB-Rust-泛型

    Codes in lesson17 泛型的例子用同一功能的函数处理不同类型的数据,例如两个数的加法,无论是整数、浮点数、还是自定义类型,都能支持。在不支持泛型的编程语言中,需要为每种类型编写一个函数: 1234567891011121314fn add_i8(a:i8, b:i8) -> i8 { a + b}fn add_i32(a:i32, b:i32) ...
  • IB-Rust-智能指针&box

    Codes in lesson16 智能指针智能指针概述智能指针(Smart Pointers)是一类数据结构,不仅包含一个指针,还附带一些额外的元数据和功能。智能指针实现了 Deref 和 Drop 两个 trait,使得它们可以像指针一样解引用并在离开作用域时自动清理资源 智能指针作用 资源管理 自动管理资源的分配和释放,避免内存泄漏 所有权与借用 Rust 的所有权系统通过智能指针...
  • IB-Rust-模块化

    Codes in lesson15 Package & Crate定义和作用 ​​package 是包含一个或多个 crate 的集合​​:由 Cargo.toml 文件定义 ​​项目组织单位​​:对应于文件系统中的一个目录​​- 依赖管理​​:通过 Cargo.toml 管理外部 crate 依赖​​- 构建管理​​:Cargo 根据包定义构建所有 crate 关键规则 ​​一个...
  • IB-Rust-返回值与错误处理

    Codes in lesson14 Option 返回值12345let mut s = String::from("A");let p1 = s.pop();dbg!(p1); // Some('A')let p2 = s.pop();dbg!(p2); // None 解构 Option1234enum Option<T> {...
  • IB-Rust-常见集合

    Codes in lesson13 Rust 中的常见集合有 Vector 和 HashMap Vector什么是 VecVec 是一个动态数组,可以根据需要动态增长和缩小,适用于需要按顺序存储数据的场景 Vec 的基本操作创建和初始化12let v: Vec<i32> = Vec::new();let v = vec![1, 2, 3]; 添加元素12// let mut v...
  • IB-Rust-模式匹配

    Codes in lesson12 概述模式匹配可以检查数据的结构并进行相应操作,提高代码的可读性和简洁性、减少错误,尤其是在处理复杂数据结构时 基础模式匹配match 表达式基本用法:match 语句可以用于模式匹配数字、字符串、枚举等 1234567let number = 13;match number { 1 => println!("One!&quo...
  • IB-Rust-结构体

    Codes in lesson11 普通结构体定义结构体 结构体的定义的位置没有要求,实例化的作用域在定义的范围内即可 大括号中,定义每一部分数据的名字和类型,称为字段(field) 123456struct User { active: bool, username: String, email: String, sign_in_count: u64,&...
  • IB-Rust-enum元组

    Codes in lesson10 不同语言 enum 对比typescript1234567enum Direction { North, East, South, West}let dir: Direction = Direction.North; c++123456789enum Direction { North, ...
12349