Rust 编程中的 Traits 深入解析
1. Traits 概述
Traits 是 Rust 编程中极为强大的抽象概念,构成了许多 Rust 库的基础。不过,强大的功能也伴随着责任,Traits 存在两个显著的缺点:Trait 污染和 Trait 重复。Trait 污染指的是存在过多的 Traits,而 Trait 重复则是多个 Traits 提供了相同或相似的功能。
Traits 允许为 Rust 类型定义共享功能。类型的实例(对象)包含状态(如结构体),而 Traits 以一种通用的方式在该状态之上定义功能,且不与任何特定类型绑定。Traits 并非 Rust 所独有,它最早出现在一种名为 Self 的编程语言中,此外,Scala、Julia、TypeScript、Kotlin(作为接口)、Haskell(作为类型类)和 Swift(作为协议扩展)等语言也提供了类似的特性。
虽然 Traits 常用于操作状态,但它们与具体的实现是不同的,实现是与特定类型绑定的。也就是说,Traits 本身是通用的,但它们的实现是具体的,不过可以使用 #[derive] 属性自动派生。库可以导出 Traits、Trait 实现或两者皆有。
2. Traits 与面向对象编程的区别
Rust 不是面向对象(OO)编程语言,但从代码的易用性来看,它可能看起来与 OO 语言相似。Rust 有对象,对象可以有方法,对象是类型的实例,如结构体或枚举,代表状态。在对象上调用方法的语法与 OO 语言类似( object.method() )。然而,Rust 缺少 OO 语言的一个重要特性:继承。 </
超级会员免费看
订阅专栏 解锁全文
99

被折叠的 条评论
为什么被折叠?



