我有一个带有一个函数的特质,该函数不需要将self
作为参数:
trait MyTrait {
fn function(x: i32) -> i32;
}
struct Dummy;
impl MyTrait for Dummy {
fn function(x: i32) -> i32 {
x * 2
}
}
fn call_method<T: MyTrait>(object: T) {
let x = object.function(2);
}
fn main() {}
图书馆的用户需要为任何类型实现特性,通常是一个空结构体。我的一个函数接受实现了
MyTrait
的泛型类型。当我尝试在泛型类型上调用function
方法时,它会给我返回以下错误信息:
我尝试了这个问题的答案中的解决方案,但我得到了相同的错误。我该如何在泛型类型上调用静态方法?error: no method named
function
found for typeT
in the current scope
main
函数中,可以通过call_method::<Dummy>()
调用call_method
函数。 - Meet Sinojia