gpt4 book ai didi

generics - 可克隆类型和可复制类型的特征

转载 作者:行者123 更新时间:2023-11-29 08:05:28 25 4
gpt4 key购买 nike

我一直在编写一个相当简单的光栅图像特征系统,但我也想扩展它以适用于逗号分隔值,并且允许两个像素的特征似乎更自然(这将有 Copy trait)和String(没有)。

但是,两者的重载会导致冲突。那么,如何编写一个接受 Copyable 类型和 Cloneable 类型的特征呢?

目前的工作定义看起来像

impl<T:Grid2d,V:Copy> drawable for Line2d{
fn stroke(&self,out:&mut T);
}

这适用于基本上是整数的像素。

最佳答案

CopyClone 的子特征(即所有 Copy 类型也是 Clone),所以你可以有一个 impl 绑定(bind)在 Clone并且它还将接受所有 Copy 类型。

impl<T: Grid2d, V: Clone> Drawable for Line2d {
fn stroke(&self, out: &mut T);
}

您必须显式调用 .clone() 来获取值的副本,但是对于 Copy 类型,此 .clone() 调用应该非常便宜(并且在发布版本中,它很可能是内联的)。

关于generics - 可克隆类型和可复制类型的特征,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33312455/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com