Loading... > Rust 提供了多种内置方法和功能,涵盖了从基础数据类型操作到高级特性的一系列功能。一下是一些常见的Rust 方法和功能,分为不同类别: # Rust 方法和特性 ## 1. **字符串操作** - `push_str`:追加一个字符串切片到字符串的末尾。 - `push`:向字符串末尾添加一个字符。 - `to_string`:将其他数据类型转换为字符串。 - `trim`:去除字符串两端的空白字符。 - `split`:按指定分隔符拆分字符串,返回迭代器。 - `replace`:将字符串中的指定子串替换为另一个子串。 - `find`:查找指定子串的起始索引,返回 `Option<usize>`。 - `starts_with`:判断字符串是否以指定子串开头。 - `ends_with`:判断字符串是否以指定子串结尾。 - `len`:返回字符串的字节长度。 ## 2. **向量(Vec)操作** - `push`:向向量中追加一个元素。 - `pop`:移除向量的最后一个元素并返回该元素。 - `len`:返回向量的长度(元素数量)。 - `get`:按索引获取元素,返回 `Option<&T>`。 - `remove`:移除并返回指定索引处的元素。 - `contains`:检查向量中是否包含指定元素。 - `iter`:返回一个不可变的迭代器。 - `iter_mut`:返回一个可变的迭代器。 - `clear`:清空向量。 - `sort`:对向量中的元素进行排序。 - `extend`:将另一个向量的元素追加到当前向量中。 ## 3. **数组操作** - `len`:返回数组的长度。 - `get`:按索引获取数组元素,返回 `Option<&T>`。 - `iter`:返回数组的迭代器。 - `copy_from_slice`:从另一个切片复制数据到数组。 - `clone_from_slice`:克隆另一个切片的内容到当前数组。 ## 4. **集合(HashMap、HashSet)** ### 4.1 `HashMap` 操作 - `insert`:将键值对插入哈希映射。 - `get`:根据键获取值,返回 `Option<&V>`。 - `remove`:根据键移除键值对。 - `contains_key`:检查是否存在指定键。 - `len`:返回哈希映射中的键值对数量。 - `keys`:返回哈希映射中的所有键的迭代器。 - `values`:返回哈希映射中的所有值的迭代器。 ### 4.2 `HashSet` 操作 - `insert`:向哈希集合中插入一个元素。 - `remove`:从哈希集合中移除指定元素。 - `contains`:检查哈希集合中是否包含某个元素。 - `len`:返回集合中的元素数量。 ## 5. **错误处理** ### 5.1 `Result` 类型 - `Ok` 和 `Err`:用于表示操作的结果枚举。 - `unwrap`:取出 `Ok` 值,若为 `Err` 则触发崩溃。 - `expect`:类似 `unwrap`,但允许自定义错误信息。 - `map`:对 `Ok` 值进行操作并返回新的 `Result`。 - `and_then`:链式操作,处理成功时的结果。 - `unwrap_or`:返回 `Ok` 值或提供的默认值。 ### 5.2 `Option` 类型 - `Some` 和 `None`:用于表示值可能存在或不存在。 - `unwrap`:取出 `Some` 值,若为 `None` 则崩溃。 - `is_some` 和 `is_none`:判断是否为 `Some` 或 `None`。 - `map`:对 `Some` 值进行操作并返回新的 `Option`。 - `unwrap_or`:返回 `Some` 值或提供的默认值。 ## 6. **迭代器** - `next`:获取迭代器中的下一个元素。 - `filter`:过滤迭代器中满足条件的元素。 - `map`:对迭代器中的每个元素进行操作,返回新的迭代器。 - `collect`:将迭代器转换为集合(如 `Vec`、`HashMap`)。 - `fold`:将迭代器中的元素累积到一个单一的结果中。 - `enumerate`:为迭代器中的元素附带索引。 - `zip`:将两个迭代器配对为一个新的迭代器。 - `chain`:将两个迭代器串联为一个新的迭代器。 ## 7. **并发编程** - `std::thread`:提供多线程支持。 - `spawn`:创建一个新线程并执行闭包。 - `join`:等待线程执行完成并获取其结果。 - `std::sync::mpsc`:用于线程之间的消息传递(单发送者,多接收者)。 - `Mutex`:提供线程间共享数据的安全访问。 - `Arc`:原子引用计数,允许在多线程间共享数据。 ## 8. **文件操作** - `std::fs::File`:用于文件的读写操作。 - `read_to_string`:读取文件内容并将其转换为字符串。 - `write_all`:将字节数组写入文件。 - `create`:创建一个新文件,若文件已存在则覆盖。 - `open`:打开现有文件。 - `metadata`:获取文件的元数据。 ## 9. **内存管理与所有权** - `Box<T>`:在堆上分配内存并返回一个指针。 - `Rc<T>`:引用计数智能指针,允许多个所有者。 - `Arc<T>`:线程安全的引用计数智能指针。 - `RefCell<T>`:提供运行时的内部可变性。 - `Cow<T>`:可以在只读和可变状态之间切换的智能指针。 ## 10. **常用工具** ### 10.1 `cargo` 命令 - `cargo build`:编译项目。 - `cargo run`:编译并运行项目。 - `cargo test`:运行测试。 - `cargo doc`:生成项目的文档。 - `cargo clean`:清理构建生成的文件。 ### 10.2 `rustfmt` 和 `clippy` - `rustfmt`:格式化代码,保证代码风格一致。 - `clippy`:代码分析工具,提供改进建议。 ## 11. **特性与宏** - `#[derive]`:自动为结构体或枚举生成特定特性实现(如 `Clone`、`Debug`)。 - `macro_rules!`:定义宏以简化重复代码。 - `#[test]`:定义单元测试。 - `#[cfg]`:条件编译,允许在特定条件下编译代码。 - `assert!`:用于测试中检查条件是否为 `true`。 --- END 最后修改:2024 年 09 月 05 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏 下一篇 发表评论 取消回复 使用cookie技术保留您的个人信息以便您下次快速评论,继续评论表示您已同意该条款 评论 * 私密评论 名称 * 🎲 邮箱 * 地址 发表评论 提交中...