04-Default Trait
Default Trait — Rust Design Patterns
2 分钟阅读
译文 · 基于 Rust Design Patterns
原文链接: https://rust-unofficial.github.io/patterns/idioms/default.html
Default Trait
描述
Rust 中许多类型都有构造器。不过,这是类型特有的;Rust 无法对「一切带有 new() 方法的东西」进行抽象。
为了允许这种抽象,人们构想了 Default trait,它可用于容器和其他泛型类型(例如参见 Option::unwrap_or_default())。
值得注意的是,一些容器在适用处已经实现了它。
不仅像 Cow、Box 或 Arc 这样的单元素容器会为所含的 Default 类型实现 Default,
还可以为所有字段都实现了该 trait 的结构体自动 #[derive(Default)],因此实现 Default 的类型越多,它就越有用。
另一方面,构造器可以接受多个参数,而 default() 方法则不能。甚至可以有多个不同名称的构造器,
但每个类型只能有一个 Default 实现。
示例
| |
参见
- 构造器惯用法是生成实例的另一种方式,这些实例可能是也可能不是「默认」的
Default文档(向下滚动可查看实现者列表)Option::unwrap_or_default()derive(new)