Rust 没有附加变量的寿命意味着什么? fn你好(f:f) 哪里 未来,, F:FNOCE(&'a mut Hi)->Fut{ }

Rust 没有附加变量的寿命意味着什么? fn你好(f:f) 哪里 未来,, F:FNOCE(&'a mut Hi)->Fut{ },rust,Rust,但我不明白“一生”在这里意味着什么 函数可以有自己的生存期吗 函数没有生命周期;推荐信可以。但是你可以有一个函数的引用。你可以把生命周期作为一个函数的参数 无法理解这里的生存期'a意味着什么 它只是意味着它是一个可变借用的闭包参数,具有生存期&'a 本质上,异步fn包装器(f:f)的行为是相同的,因为和'a可以省略 如果在函数代码中的某个地方,您需要说生存期'a将超过某个生存期'b,那么这将非常有用 例如: async fn包装器(f:f,b:&'b Hi) 哪里 未来,, F:FNOCE(&'

但我不明白“一生”在这里意味着什么

函数可以有自己的生存期吗

函数没有生命周期;推荐信可以。但是你可以有一个函数的引用。你可以把生命周期作为一个函数的参数

无法理解这里的生存期
'a
意味着什么

它只是意味着它是一个可变借用的闭包参数,具有生存期
&'a

本质上,
异步fn包装器(f:f)
的行为是相同的,因为
和'a
可以省略

如果在函数代码中的某个地方,您需要说生存期
'a
将超过某个生存期
'b
,那么这将非常有用

例如:

async fn包装器(f:f,b:&'b Hi)
哪里
未来,,
F:FNOCE(&'a mut Hi)->Fut,
a:b

生命周期不是针对函数,而是针对其参数的参数,即“Hi”。这是否回答了您的问题?
fn hello<'a>() {}
struct Hi {}

async fn wrapper<'a, F, Fut>(f: F) 
where 
Fut: Future<Output = ()>,
F: FnOnce(&'a mut Hi) -> Fut{

}