首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >定义接受泛型向量的Fn别名类型。

定义接受泛型向量的Fn别名类型。
EN

Stack Overflow用户
提问于 2022-01-05 09:18:24
回答 1查看 86关注 0票数 -2

我试图为接受T的Vec作为参数的函数创建一个类型别名,并且我希望为泛型类型指定边界,以便该函数的每个实例都接受相同类型的向量,而不是动态的向量。

这是我的密码:

代码语言:javascript
运行
复制
trait MyTrait {}

struct Foo {}
impl MyTrait for Foo {}

struct Bar {}
impl MyTrait for Bar {}

type MyFn = Box<dyn Fn(Vec<T: MyTrait>)>;

我得到了

错误类型类型的类型参数:预期至少为1,但发现0

我想以MyFn的实例结束,这些实例只接受FooBar的向量,而不是两者都接受。

EN

回答 1

Stack Overflow用户

发布于 2022-01-05 13:15:08

由于@Jmb,我发现必须使用泛型而不带界限地声明类型,然后可以使用别名类型直接在结构中添加边界:

代码语言:javascript
运行
复制
trait MyTrait {}

struct Foo {}
impl MyTrait for Foo {}

struct Bar {}
impl MyTrait for Bar {}

type MyFn<T> = Box<dyn Fn(Vec<T>)>;

struct MyStr<T: MyTrait> {
    value: MyFn<T>
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70590381

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档