gpt4 book ai didi

generics - 如何强制特征的两个关联类型参数相等?

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

我有一个函数 f 接受两个相同类型的参数,还有一个函数 g 接受两个不同类型的参数,但是这两种类型都必须存储相同的值,因此 g 可以使用 f 的参数中包含的值调用 f。我目前实现了这样的东西:

fn f<T>(a: T, b: T) {}

trait A {
type A;
fn getter(&self) -> Self::A;
}

fn g<T: A, U: A>(a: T, b: U) {
f(a.getter(), b.getter())
}

我必须在 g 的定义中添加什么才能使其工作?

最佳答案

where 子句工作正常:

fn g<T, U>(a: T, b: U)
where
T: A,
U: A<A = T::A>, // where T::A is equal to B::A
{
f(a.getter(), b.getter())
}

关于generics - 如何强制特征的两个关联类型参数相等?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42378514/

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