当前位置:  开发笔记 > 后端 > 正文

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

如何解决《有没有办法将泛型类型限制为几种类型之一?》经验,为你挑选了1个好方法。

我正在尝试创建一个泛型结构,它使用"整数类型"来引用数组.出于性能原因,我希望能够轻松指定是否使用u16,u32u64.像这样的东西(显然是无效的Rust代码):

struct Foo { ... }

有没有办法表达这个?



1> Lukazoid..:

对于数组的引用,通常只使用一个usize而不是不同的整数类型.

但是,要做到你是什么,你可以创建后的新特点,实现该特性的u16,u32并且u64,然后限制吨至您的新特点.

pub trait MyNewTrait {}

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

struct Foo { ... }

然后,您还可以添加方法上MyNewTraitimpls到封装特定的逻辑u16,u32u64.


@HenningKoehler:你可以,你只需要在特质级别声明它.那就是`pub trait MyNewTrait:添加<输出=自我> + Mul <输出=自我> + ... {}
推荐阅读
低调pasta_730
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有