Rust 'impl<';a>;配置<';a>;{`

Rust 'impl<';a>;配置<';a>;{`,rust,lifetime,Rust,Lifetime,对于以下代码: struct Config<'a> { query: &'a str, filename: &'a str, case_sensitive: bool, } impl<'a> Config<'a> { pub fn new(args: &'a [String]) -> Result<Config, &'static str> { if args.

对于以下代码:

struct Config<'a> {
    query: &'a str,
    filename: &'a str,
    case_sensitive: bool,
}

impl<'a> Config<'a> {
    pub fn new(args: &'a [String]) -> Result<Config, &'static str> {
        if args.len() < 3 {
            return Err("not enough arguments");
        }

        let query = &args[1];
        let filename = &args[2];

        let case_sensitive = env::var("CASE_INSENSITIVE").is_err();

        Ok(Config {
            query,
            filename,
            case_sensitive,
        })
    }
}
结构配置结果配置{

第一个和第二个
'a
的语法含义是什么?我知道
'a
是一个终生的注释,但不知道为什么它被放在
impl
Config
之后。第一个
'a
做什么,第二个
'a
做什么?

第一个
的意思是什么“在任何可能的使用寿命内实施
'a
…”

引入变量后,第二个
'a
是变量对类型的应用

您可以将语法
impl
理解为:“对于任何可能的生存期
'a
,这些方法都是为
配置定义的(“对于所有生存期
'a
'b
,其中
'b
超过
'a
)。对于类型,这可能包括特征或生存期界限,例如
(“对于所有生存期,
'a
和所有类型
T
,其中
T
实现
Debug
,并且不超过
'a
”。

所有通用生存期和类型都需要在某处声明

尝试编译代码以使用
impl-Config{
|^^未声明的生存期
与类型参数一样,通用生存期参数,如
配置中的
'a