在这种情况下,静态是什么意思?
fn foo<F: Human + 'static>(param: F) {}
fn main() {
let kate = Kate { age: 30 };
foo(kate);
}
Run Code Online (Sandbox Code Playgroud)
我理解标记global_variable
static
类似于静态意味着即.在c#中,变量的空间分配在内存的单独段中,存在于程序的整个执行中.
static global_variable: i32 = 5;
Run Code Online (Sandbox Code Playgroud)
但是我不明白给出"静态约束"意味着什么.被kate
莫名其妙地促进和她的一生延长,因此现在住的程序太的整体执行力?
或者它只是意味着一旦foo
停止使用它就会被解除分配?
Lev*_*ans 10
设置约束T: 'a
意味着该类型的所有生命周期参数T
必须满足生命周期约束'a
(因此,必须比它寿命更长).
例如,如果我有这个结构:
struct Kate<'a, 'b> {
address: &'a str,
lastname: &'b str
}
Run Code Online (Sandbox Code Playgroud)
Kate<'a, 'b>
F: Human + 'static
只有当'a == 'static
和时 才会满足约束'b == 'static
.
但是,没有任何生命周期参数的结构将始终满足任何生命周期约束.
因此,作为总结,约束F: 'static
意味着:
F
没有生命周期参数F
都是'static
归档时间: |
|
查看次数: |
728 次 |
最近记录: |