如何引用结构实例方法

时间:2020-05-11 09:29:26

标签: rust

如何从实例而不是完整类型中引用方法。

具有任何实现函数的类型很容易,您可以使用MyStruct::the_method访问该方法。

但是如何处理其中的 实例

我得到以下示例(playground):

struct NumGen<N> {
    num: N
}


impl<N: Copy> NumGen<N> {
    fn new(n: N) -> Self {
        Self {
            num: n,
        }
    }

    fn get_num(&self) -> N {
        self.num
    }
}


fn print_num_from_other_func<F>(mut f: F) where F: FnMut() -> u32 {
    println!("{}", f());
}


fn main() {
    print_num_from_other_func(|| 10);
    let num_gen = NumGen::new(10);
    print_num_from_other_func(|| num_gen.get_num());
    // this part doesn't work
    // print_num_from_other_func(num_gen::get_num);
}

0 个答案:

没有答案