摘要: 是的,trait 可以作为函数返回值,但 Rust 提供了两种主要方式,分别对应 静态分发 和 动态分发: ✅ 方式一:impl Trait —— 静态分发(推荐用于单一具体类型) 语法 fn function_name() -> impl TraitName { // 返回一个实现了 TraitN 阅读全文
posted @ 2025-12-21 16:26 悠哉大斌 阅读(14) 评论(0) 推荐(0)
摘要: Rust 的 trait 多态机制是其类型系统的核心特性之一,它通过两种互补的方式实现多态(polymorphism):静态分发(Static Dispatch) 和 动态分发(Dynamic Dispatch)。两者在性能、灵活性和使用场景上各有侧重,Rust 的设计允许你在同一语言中按需选择。 阅读全文
posted @ 2025-12-21 16:18 悠哉大斌 阅读(37) 评论(0) 推荐(0)
摘要: Rust 和 C# 都支持“枚举”(enum),但它们在设计理念、能力、用途和底层实现上存在根本性差异。可以说,Rust 的枚举更像“带数据的代数数据类型”,而 C# 的枚举更像是“命名整数常量”(尽管 C# 后来也增强了功能)。 下面从多个维度对比: 一、基本定位不同 特性 Rust enum C 阅读全文
posted @ 2025-12-21 11:13 悠哉大斌 阅读(6) 评论(0) 推荐(0)
摘要: Rust 的宏(macro) 是一种在编译期进行代码生成或转换的机制,它允许你编写“生成代码的代码”,从而减少重复、提升表达力,并实现一些普通函数无法做到的功能(比如定义 DSL、处理可变参数等)。 与函数不同,宏在编译阶段展开,不产生运行时开销(零成本抽象)。 一、宏的类型 Rust 主要有两类宏 阅读全文
posted @ 2025-12-21 10:33 悠哉大斌 阅读(24) 评论(0) 推荐(0)
摘要: 在 Rust 中,&str 和 String 都用于处理文本,但它们在内存布局、所有权语义、使用场景上有本质区别。理解它们的差异是掌握 Rust 字符串处理的关键。 一、核心区别概览 特性 &str String 类型 字符串切片(引用类型) 可变、可增长的字符串(拥有所有权的堆分配类型) 内存位置 阅读全文
posted @ 2025-12-21 10:27 悠哉大斌 阅读(23) 评论(0) 推荐(0)