gpt4 book ai didi

rust - 有没有办法将泛型类型限制为几种类型之一?

转载 作者:行者123 更新时间:2023-11-29 07:46:05 24 4
gpt4 key购买 nike

我正在尝试创建一个通用结构,它使用“整数类型”来引用数组。出于性能原因,我希望能够轻松指定是使用 u16u32 还是 u64。像这样的东西(这显然不是有效的 Rust 代码):

struct Foo<T: u16 or u32 or u64> { ... }

有什么表达方式吗?

最佳答案

对于数组的引用,通常你只需要使用 usize而不是不同的整数类型。

但是,要在创建新特征后执行您的操作,请为 u16 实现该特征, u32u64然后将 T 限制为您的新特征。

pub trait MyNewTrait {}

impl MyNewTrait for u16 {}
impl MyNewTrait for u32 {}
impl MyNewTrait for u64 {}

struct Foo<T: MyNewTrait> { ... }

然后您还可以将方法添加到 MyNewTrait 上和 impl s 来封装特定于 u16 的逻辑, u32u64 .

关于rust - 有没有办法将泛型类型限制为几种类型之一?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40776020/

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