敏感词过滤服务

在内容管理项目中,我们经常会用到敏感词检查/过滤服务,这里我们使用 Go 编写一个简单的敏感词过滤服务。 主要功能如下: 加载敏感词列表: 从文件或直接在代码中定义。 添加/删除敏感词: 允许动态修改敏感词列表。 文本过滤: 检测文本中是否包含敏感词,并进行替换或直接返回结果。 我们将使用 Trie (前缀树)……

阅读全文

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)] 是一个更宽泛的属性,它用于抑制与“未使用”相关的所有警告。这包括未使用的变量、未使用的函数、未使用的结构体字段等。也就是说,任……

阅读全文

Virtual Memory

概念 虚拟内存是操作系统提供的一种抽象概念,它将计算机内存抽象为一个连续且相对较大的地址空间,为每个运行的进程提供了一种假象,使得每个进程都认为自己拥有一块连续的内存空间,称为虚拟地址空间。虚拟内存的实现可以帮助提高系统的内存利用率、简化内存管理和保障系统的安全性。 虚拟内存的组成部……

阅读全文

恶性循环

网上有很多埋怨: ​ 『现在大学讲授知识与社会脱节』 ​ 『大学生出来都找不到工作』 ​ 『动不动就要工作经验,刚毕业哪里来的经验』 偶有感悟,今天来聊聊大学讲授知识与社会需求脱节的问题。 我毕业于一个双非的二流大学,毕业后什么都不会,找工作四处碰壁。。。 当然这里自己也有很大一部分原因。 运气:没……

阅读全文

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" 的……

阅读全文

初识Redis Streams

Redis Streams 是 Redis 5.0 引入的一种新型数据结构,用于处理消息和事件流。它提供了一个有序、持久化、可扩展的日志结构,可以按照时间戳的顺序存储和检索消息。以下是 Redis Streams 的一些基本用法: 1. 创建 Stream: XADD mystream * field1 value1 field2 value2 通过 XADD 命令创建一个新的 Stream,并向其中添加消息。mystream 是 Stream 的名称,*……

阅读全文