分类 rust 中的文章

Rust宏浅尝

Rust 的宏系统非常强大,可以让你编写简洁、灵活的代码,并且能够避免一些常见的错误。宏在 Rust 中分为两种主要类型:声明式宏(Declarative Macros) 和 过程宏(Procedural Macros)。以下是一个从入门到应用的介绍。 一、声明式宏(Declarative Macros) 声明……

阅读全文

Rust异步编程初尝

在 Rust 中,async/await 是用于编写异步代码的关键机制。与其他编程语言相比,Rust 的异步编程模型独特且强大,它结合了 Rust 对内存安全和性能的追求。让我们深入了解它的工作原理,以及如何在 Rust 中优雅地使用它。 1. 背景与基础概念 1.1 同步 vs 异步 同步编程:代码按照顺序执行,任务需要等待其他任务……

阅读全文

Rust 牛?

在Rust编程语言中,Cow(Clone on Write)是一个枚举类型,主要用于在性能和内存使用之间取得平衡。它允许数据在不需要更改的情况下进行共享,而在需要更改时进行拷贝。Cow主要用于那些需要既能借用数据又能在必要时进行拷贝的数据场景。 Cow的定义 Cow位于std::borro……

阅读全文

Rust属性unused和dead_code的区别

在 Rust 中,#[allow(unused)] 和 #[allow(dead_code)] 都是属性(attributes),它们用于编译时抑制某些类型的警告,但是它们针对的是不同类型的未使用代码。 #[allow(unused)] #[allow(unused)] 是一个更宽泛的属性,它用于抑制与“未使用”相关的所有警告。这包括未使用的变量、未使用的函数、未使用的结构体字段等。也就是说,任……

阅读全文

Rust Trait Study

trait BitSet { fn clear(&mut self, index: usize); fn is_set(&self, index: usize) -> bool; fn set(&mut self, index: usize); fn toggle(&mut self, index: usize) { if self.is_set(index) { self.clear(index); } else { self.set(index); } } } impl BitSet for u64 { fn clear(&mut self, index: usize) { *self &= !(1 << index); } fn is_set(&self, index: usize) -> bool { (*self >> index) & 1 == 1 } fn set(&mut self, index: usize) { *self |= 1 << index; } fn toggle(&mut self, index: usize) { *self ^= 1 << index } } ……

阅读全文

Rust --cfg 用法

在Rust中,--cfg(configuration)标志用于根据条件编译代码。你可以通过在代码中使用条件编译属性来设置这些条件。下面是一些使用 --cfg 的基本步骤: 在 Cargo.toml 中设置条件: 在你的 Cargo.toml 文件中,你可以定义一些配置项,这些配置项可以在代码中使用。例如: [package] name = "your_project" version = "0.1.0" [features] # 定义一个名为 "example_feature" 的……

阅读全文

Rust 中的 String 为什么不能通过下标去访问

在 Rust 中,String 类型是一个动态可变的 UTF-8 字符串,与传统的字符数组不同。UTF-8 字符串的特点是每个字符可能占用不同数量的字节,因此通过下标去访问字符串的字符并不是一个常量时间的操作,因为需要遍历字符串来找到相应的位置。 Rust 中的 String 类型实际上是一个包装了 Vec<u8>(字……

阅读全文

Rust Benchmark初探

在Rust中,您可以使用标准库中的 test 模块来编写和运行基准测试。基准测试是用于测量代码性能的测试类型,通常用于比较不同实现的性能差异。在Rust中使用基准测试的一般步骤: 添加依赖: 确保您的项目的 Cargo.toml 文件中包含 test 和 bencher 依赖。在 [dev-dependencies] 部分添加如下行: $ cargo add bencher@0.1.6 --dev 查看Cargo.toml [dev-dependencies] bencher = "0.1.6" 创……

阅读全文