随笔分类 -  【10】rust

摘要:Clone与Drop用法 #[derive(Debug)] struct Chunk { id: u32, } impl Clone for Chunk { fn clone(&self) -> Self { println!("调用 Chunk::clone(), id = {}", self.i 阅读全文
posted @ 2026-09-14 17:45 苏格拉底的落泪 阅读(7) 评论(0) 推荐(0)
摘要:mut用法 Rust 中的 `mut` 表示“可变(mutable)”。Rust 默认变量不可修改,只有显式加上 `mut` 后,才允许修改该变量绑定的值。 1. 可变变量 Rust 默认变量是不可变的: fn main() { let a = 10; // a = 20; // 编译错误 } 如果 阅读全文
posted @ 2026-08-30 17:23 苏格拉底的落泪 阅读(6) 评论(0) 推荐(0)
摘要:rust编译安装 查询版本: cargo --version rustc --version rustup show cargo metadata --format-version 1 rust编译安装 1. rust编译器离线安装 2. Rust简介和安装 阅读全文
posted @ 2025-12-13 13:21 苏格拉底的落泪 阅读(17) 评论(0) 推荐(0)
摘要:match #[derive(Debug, Clone)] struct User { name: String, is_admin: bool, active: bool, } #[derive(Debug)] struct Request { action: String, require_ad 阅读全文
posted @ 2025-07-08 16:21 苏格拉底的落泪 阅读(25) 评论(0) 推荐(0)
摘要:枚举 Option<T> 概览 enum Option<T> { Some(T), None, } Some(T):表示有值。 None:表示无值(空值、未定义、找不到等)。 fn find_even(numbers: &[i32]) -> Option<i32> { for &n in numbe 阅读全文
posted @ 2025-07-05 17:38 苏格拉底的落泪 阅读(25) 评论(0) 推荐(0)
摘要:trait trait 可以类比其他语言中的 接口(interface) 或 抽象类。它定义了一组方法签名,但不实现具体逻辑,具体逻辑由实现该 trait 的类型提供。 trait TraitName { fn method(&self); } 然后用 impl 为类型实现这个 trait: str 阅读全文
posted @ 2025-07-05 16:36 苏格拉底的落泪 阅读(55) 评论(0) 推荐(0)
摘要:生命周期 当函数签名中没有显式生命周期参数时,Rust 会根据以下三条规则自动推断: 1. 每个引用参数都有自己的生命周期参数。 例如,函数有两个引用参数,Rust 会假设它们有不同的生命周期: fn foo(x: &i32, y: &i32) -> i32 { ... } // 自动推断为: fn 阅读全文
posted @ 2025-07-05 14:40 苏格拉底的落泪 阅读(67) 评论(0) 推荐(0)
摘要:数组 1. 显示初始化 let a: [i32; 3] = [1, 2, 3]; // 类型:[i32; 3] [i32; 3] 表示:长度为 3 的 i32 数组。 元素数量固定,不能动态改变。 2. 使用重复值初始化 let b = [0; 5]; // 等价于 [0, 0, 0, 0, 0] 阅读全文
posted @ 2025-07-05 14:06 苏格拉底的落泪 阅读(59) 评论(0) 推荐(0)
摘要:元组结构体 // 普通结构体,字段有名字 struct Person { name: String, age: u32, } // 元组结构体,字段按位置访问 struct Color(u8, u8, u8); // 元组结构体(单字段),用于封装某个类型 struct Wrapper(Vec<i3 阅读全文
posted @ 2025-07-04 16:32 苏格拉底的落泪 阅读(40) 评论(0) 推荐(0)
摘要:结构体 为什么会有多个 impl Engine? 组织代码:把一部分方法放一个 impl,另一部分放另一个 impl,比如基础方法和扩展方法分开写。 实现不同 trait:通常用 impl Engine 实现类型自身的方法,再用 impl Trait for Engine 实现某个 trait。 分 阅读全文
posted @ 2025-07-04 14:51 苏格拉底的落泪 阅读(30) 评论(0) 推荐(0)
摘要:pub mod user { // 结构体是 pub 的 pub struct User { name: String, // 字段默认是私有的 } impl User { pub fn new(name: &str) -> Self { User { name: name.to_string(), 阅读全文
posted @ 2025-07-04 14:49 苏格拉底的落泪 阅读(22) 评论(0) 推荐(0)
摘要:Box use std::ptr; struct MyStruct { value: i32, } impl MyStruct { fn new(val: i32) -> Self { Self { value: val } } fn print(&self) { println!("MyStruc 阅读全文
posted @ 2025-07-04 14:20 苏格拉底的落泪 阅读(32) 评论(0) 推荐(0)