结构定义里类似<'a>的东西怎么理解?

有Java背景正在学习Rust, 最近在看《通过例子学 Rust

在结构体(structs)那一章(包括之前其他的一些入门教程里)发现代码示例里写的

#[derive(Debug)]
struct Person<'a> {
    name: &'a str,
    age: u8,
}

其中 Person<’a> 应该怎么理解?类似Java里的不限数据类型吗?类似这种的?

private class Person<T> {
    private T name;
    private int age;
}
最佳答案

不是,java里面基本上不用考虑引用。如果区分就是值传递和引用传递。《T》 是泛型,作用java和rust是一样。rust因为有生命周期,所有权概念,所以在一些复杂的场景下需要指定谁“生存”的更长,或者“生存”的范围。’ 只是一个生命周期的标志,a只是定义的一个类似于变量的存在,说作用只是为了区分存在哪些生命周期,以及那个活得长

3年前 评论
讨论数量: 3

这个是生命周期,你可以先了解下。没有全局概念很多都不清楚

3年前 评论

不是,java里面基本上不用考虑引用。如果区分就是值传递和引用传递。《T》 是泛型,作用java和rust是一样。rust因为有生命周期,所有权概念,所以在一些复杂的场景下需要指定谁“生存”的更长,或者“生存”的范围。’ 只是一个生命周期的标志,a只是定义的一个类似于变量的存在,说作用只是为了区分存在哪些生命周期,以及那个活得长

3年前 评论

谢谢二位大佬解答

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!