< 返回版块

xBINj 发表于 2022-05-20 10:08

Tags:泛型,特征

    #[derive(Debug)]
    struct Point3<T> {
        x: T, 
        y: T
    }
    trait MyTrait<U> {
        fn show_mytrait_msg(&self, x: U);
    }
    impl<T, U> MyTrait<U> for Point3<T> {
        fn show_mytrait_msg(&self, xx: U) {
            println!("I am in Point3.show_mytrait_msg().");
        }
    }
    //let p5 = Point3::<i32>{ x: 0, y: 1 };
    let p5 = Point3{ x: 0i32, y: 1i32 };
    //p5.show_mytrait_msg();

发现不知道怎么调用 show_mytrait_msg 方法了,网上搜一把,这种类型的泛型特征相关的资料也不多,一般出现的都是类型有泛型,或者特征有泛型,但是类型和特征同时有泛型,太容易把自己绕在类型定义和方法调用上了。 求指点,或者提供一些参考资料,感谢~

评论区

写评论
Grainspring 2022-05-21 09:12

Rust中的泛型参数,如果没有指定bound或where clause时,代表可以接收任何类型。

可以参考<C++&Rust:泛型与特化> https://mp.weixin.qq.com/s?__biz=MzIxMTM0MjM4Mg==&mid=2247484047&idx=1&sn=3102dd81ceba3927f33c42a7a8db3343

作者 xBINj 2022-05-20 10:34

好吧,我蠢,哭。。。。突然短路不知道怎么弄了。

--
👇
Grobycn: p5.show_mytrait_msg(1i64); 这样不就行了吗

Grobycn 2022-05-20 10:30

p5.show_mytrait_msg(1i64); 这样不就行了吗

1 共 3 条评论, 1 页