• IB-Rust-macro宏

    Codes in lesson21 常用宏123456println!("Hello, world!"); // 常用println! {"Hello, world!"};println!["Hello, world!"];let v = vec![1, 2, 3, 4, 5];assert_eq!(1, 10)...
  • IB-Rust-trait特性

    Codes in lesson20 trait 定义trait 定义了某个特定类型拥有可能与其他类型共享的功能 trait 类似于其他语言中 接口(interfaces)的功能 trait 实现普通实现 使用 trait 关键字声明一个特征 在大括号中定义该特征的所有方法 只定义特征方法的签名,而不进行实现,此时方法签名结尾是 ;,而不是 {} 123pub tr...
  • 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...
1234510