rust - 如何为嵌入在实现特征 A 或 B 的结构中的类型定义方法?
问题描述
我有两个特征和一个结构:
pub trait A {}
pub trait B {}
struct S<T> { a: T }
S<T>
我只能在 T 实现 traitA
和时定义一个方法B
:
impl<T: A + B> S<T> {
pub fn do_something(&self) {
println!("do_something");
}
}
S<T>
当 T 实现 traitA
或 时,如何定义方法B
?我试图写两个impl
,但它不起作用:
impl<T: A> S<T> {
pub fn do_something_else(&self) {
println!("do_something_else");
}
}
impl<T: B> S<T> {
pub fn do_something_else(&self) {
println!("do_something_else");
}
}
我收到了这个错误:
error[E0592]: duplicate definitions with name `do_something_else`
--> src\main.rs:14:5
|
14 | pub fn do_something_else(&self) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ duplicate definitions for `do_something_else`
...
20 | pub fn do_something_else(&self) {
| ------------------------------- other definition for `do_something_else`
解决方案
推荐阅读
- dll - 用什么程序可以打开dll文件
- java - JCommander 是否支持不带前缀的动态参数?
- sql-server - 在存储过程中为服务器创建别名
- sql - 如果一列值没有变化,则 SQL 查询以获取最旧的 start_date
- firebase - 如何使用共享首选项保持用户登录颤动
- r - R:有没有办法计算每行中连续数字的数量?
- bash - 匹配成功后 awk 打印“匹配”
- python - PDF 文件处理(打开一个大的 pdf 文件,找到一个关键字,然后保存在哪个页面中找到了,然后将这些页面拆分并合并到一个 pdf 中)
- postman - 使用邮递员测试脚本从 JSON 响应中解析嵌套元素
- python - 在这种情况下如何执行正确的 if 函数?