【发布时间】:2021-10-25 08:50:03
【问题描述】:
如果我有两个结构:
struct A {...}
struct B {...}
还有一个通用函数fn f<T>(param: T),我通过传递A 或B 的引用来调用它,该函数中有没有办法拥有这样的东西(伪代码):
if param is A {
// do something with "param as A", like this:
let a: A = (A) param;
// ...
}
在 Java、C# 等语言中,我只需检查一个对象是否是 A 的实例,如果是,则将其转换为 A,如上例所示。我怎样才能在 Rust 中做这样的事情?我知道我可以在 trait 中加入一些特定于类型的逻辑,但我特别要求一种更简单、更直接的方式。
【问题讨论】:
-
您能描述一下您的具体用例吗?针对特定类型的行为有多种方法,选择哪一种取决于您的要求和偏好。