获取给定 LHS 和 RHS 类型的 Add 实现的关联输出类型
Getting the associated Output type of an Add implementation given LHS and RHS types
在 Rust 中,是否有任何方法可以在类型级别通过使用 LHS(Self
)和 RHS 类型调用 Add
实现,以便使用其 Output
类型(也就是说,泛型函数的 return 类型)?
有,虽然看起来有点黑魔法。
您需要组合 3 位语法:
- 可以通过
<Type as Trait>
访问类型的特征实现
- 指定
RHS
只需将其作为参数传递即可 Add<???>
- 最后获得特征的关联类型只需要使用
Trait::OutputType
(可能有歧义)
将 3 个组合在一起我们得到 <Self as Add<RhsType>>::Output
。
在 Rust 中,是否有任何方法可以在类型级别通过使用 LHS(Self
)和 RHS 类型调用 Add
实现,以便使用其 Output
类型(也就是说,泛型函数的 return 类型)?
有,虽然看起来有点黑魔法。
您需要组合 3 位语法:
- 可以通过
<Type as Trait>
访问类型的特征实现
- 指定
RHS
只需将其作为参数传递即可Add<???>
- 最后获得特征的关联类型只需要使用
Trait::OutputType
(可能有歧义)
将 3 个组合在一起我们得到 <Self as Add<RhsType>>::Output
。