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