< 返回版块

acodercat 发表于 2020-05-13 14:26

Tags:型变

下面代码中的函数f的生命周期参数'fa的生命周期长度由于协变的原因导致它的长度是不是main函数中最小的那个,也就是'fa等于b对吗?,

#[derive(Debug)]
struct User<T> {
    name: T,
    // marker: PhantomData<fn(T)>
}

fn f<'fa>(i: &'fa i32, u: &User<&'fa i32>) {
}

fn main() {

    'a: {
        let a = 1234;
        let user = User {
            name: &a,
            // marker:  PhantomData
        };
        'b: {
            let b = 123;
            f(&b, &user);
        }
        println!("user:{:?}", user);
    }

评论区

写评论
liangyongrui 2020-05-13 16:17

1 共 1 条评论, 1 页