刷新
Rust 智能指针

博主头像 本文在原文基础上有删减,原文参考Rust 智能指针 目录使用Box指向堆上的数据使用 Box 在堆上储存数据Box 允许创建递归类型cons list 的更多内容计算非递归类型的大小使用 Box<T> 给递归类型一个已知的大小通过 Deref trait 将智能指针当作常规引用处理追踪指针的值像引用 ...

教你用Rust实现Smpp协议

博主头像 本文分享自华为云社区《华为云短信服务教你用Rust实现Smpp协议》,作者: 张俭。 协议概述 SMPP(Short Message Peer-to-Peer)协议起源于90年代,最初由Aldiscon公司开发,后来由SMPP开发者论坛维护和推广。SMPP常用于在SMSC(Short Message ...

Rust 关于 Cargo 和 Crates.io 的内容

博主头像 原文链接参考Rust 关于 Cargo 和 Crates.io 的内容,注意Windows和Linux系统的文件路径差异。 目录采用发布配置自定义构建将 crate 发布到 Crates.io编写有用的文档注释常用(文档注释)部分文档注释作为测试注释包含项的结构使用 pub use 导出合适的公有 ...

Rust 中的函数式语言功能:迭代器与闭包

博主头像 对原文做了删减,原文参考Rust 中的函数式语言功能:迭代器与闭包。 目录闭包:可以捕获环境的匿名函数闭包会捕获其环境闭包类型推断和注解捕获引用或者移动所有权将被捕获的值移出闭包和 Fn trait使用迭代器处理元素序列Iterator trait 和 next 方法消费迭代器的方法产生其他迭代器的 ...

Rust 一个 I/O 项目:构建一个命令行程序

博主头像 本篇在原文基础上有删减和添加,增加了一些细节内容,原文请参考一个 I/O 项目:构建一个命令行程序。 目录接受命令行参数读取参数值将参数值保存进变量读取文件重构改进模块性和错误处理二进制项目的关注分离提取参数解析器组合配置值使用 clone 的权衡取舍创建一个 Config 的构造函数修复错误处理改 ...

Rust 编写自动化测试

博主头像 本文在原文基础上有删减,原文请参考目录如何编写测试测试函数剖析使用 assert! 宏来检查结果使用 assert_eq! 和 assert_ne! 宏来测试相等自定义失败信息使用 should_panic 检查 panic将 Result<T, E> 用于测试控制测试如何运行并行或连续的运行测试显 ...

Rust 泛型、Trait 和生命周期

博主头像 本文在原文基础上有删减,原文参考泛型、Trait 和生命周期。 目录泛型数据类型在函数定义中使用泛型结构体定义中的泛型枚举定义中的泛型方法定义中的泛型泛型代码的性能Trait:定义共同行为定义 trait为类型实现 trait默认实现trait 作为参数Trait Bound 语法通过 + 指定多个 ...

Rust 所有权和 Move 语义

博主头像 Rust 所有权和 Move 语义 所有权和生命周期是 Rust 和其它编程语言的主要区别,也是 Rust 其它知识点的基础。 动态数组因为大小在编译期无法确定,所以放在堆上,并且在栈上有一个包含了长度和容量的胖指针指向堆上的内存。 恰到好处的限制,反而会释放无穷的创意和生产力。 Rust 所有权规 ...

Rust 错误处理

博主头像 目录用 panic! 处理不可恢复的错误对应 panic 时的栈展开或终止使用 panic! 的 backtraceWindows设置 RUST_BACKTRACE 环境变量的两种方式用 Result 处理可恢复的错误匹配不同的错误不同于使用 match 和 Result<T, E>失败时 pani ...

Rust 常见集合

博主头像 目录使用 Vector 储存列表新建 vectorVec::new 函数(无初值)vec! 宏(有初值)更新 vector读取 vector 的元素注意可变和不可变引用遍历 vector 中的元素使用枚举来储存多种类型丢弃 vector 时也会丢弃其所有元素使用字符串储存 UTF-8 编码的文本什么 ...

学习 Rust 的 15 种方法

博主头像 学习 Rust 的 15 种方法 1. 阅读:The Rust Book - https://doc.rust-lang.org/book/ 2. 代码:做 Rustlings 练习 - https://github.com/rust-lang/rustlings 3. 课程:如何通过以下方式 学习 ...

<1···34