Rust的Blanket Implements(通用实现)
作者:誉儿
出处:
在Rust中的实现 , 您可以扩展实现的类型的功能 。 实现是使用impl关键字定义的 , 并且包含属于类型实例的函数 或者 属于当前类型实例的函数 。
With implementations in Rust, you can extend the functionality of an implementation type. Implementations are defined with the impl keyword and contain functions that belong to an instance of a type, statically, or to an instance that is being implemented.
文章插图
With blanket implementations you can save writing similar implementations for multiple types.
【Rust的Blanket Implements(通用实现)】你可以使用blanket impl 保留对于多种类型相似的实现 。
什么是blanket implementations官方定义:We can also conditionally implement a trait for any type that implements another trait. Implementations of a trait on any type that satisfies the trait bounds are called _blanket implementations_ and are extensively used in the Rust standard library. For example, the standard library implements the ToString trait on any type that implements the Display trait.
我们可以有条件地为任何一个 实现了另一个Trait的类型 实现一个Trait 。为任何一个满足 Trait bound的类型 实现一个Trait ,称为通用实现(_blanket implementations_) 。且被广泛地使用于Rust标准库 。举个例子 ,标准库 为任何一个实现了Display Trait的类型 实现了 ToString Trait 。
Blanket implementationsleverage Rust’s ability to use generic parameters. They can be used to define shared behavior using traits. This is a great way to remove redundancy in code by reducing the need to repeat the code for different types with similar functionality.
In the code below, we are making a blanket implementation on a _generic type_, T, that implements the Display trait.
Blanket implementations(通用实现)使Rust具备使用模板参数的能力 。 它们可用于使用Trait来定义共享行为 。最大的用处就是减少为不同类型的相似功能写重复代码 ,以减少冗余代码 。
以下的代码 ,我们为 实现了Display trait的模板参数T 定义了一个通用实现 。
impl ToString for T {// ...}
To elaborate, our generic type, T, is bound to implement Display . Therefore, we use behavior guaranteed by the Display type, to produce a string representation, to our advantage.
详细地说 , 我们的模板类型T必须实现Display 。 因此 , 我们利用Display类型保证的行为来产生字符串表示形式 , 来发挥Rust的优势 。
参考《官方文档》 #using-trait-bounds-to-conditionally-implement-methods
《Definition: Blanket implementation》
作者:誉儿
出处:
- 智能手机市场|华为再拿第一!27%的份额领跑全行业,苹果8%排在第四名!
- 会员|美容院使用会员管理软件给顾客更好的消费体验!
- 行业|现在行业内客服托管费用是怎么算的
- 人民币|天猫国际新增“服务大类”,知舟集团提醒入驻这些类目的要注意
- 国外|坐拥77件专利,打破国外的垄断,造出中国最先进的家电芯片
- 技术|做“视频”绿厂是专业的,这项技术获人民日报评论点赞
- 面临|“熟悉的陌生人”不该被边缘化
- 中国|浅谈5G移动通信技术的前世和今生
- 页面|如何简单、快速制作流程图?上班族的画图技巧get
- 桌面|日常使用的软件及网站分享 篇一:几个动态壁纸软件和静态壁纸网站:助你美化你的桌面