Syntax 什么是;R+';“静态”;“中的语法含义”;F:FNOCE(&;mut资源<;S>;)->;R+';静态;?

Syntax 什么是;R+';“静态”;“中的语法含义”;F:FNOCE(&;mut资源<;S>;)->;R+';静态;?,syntax,rust,lifetime,rust-actix,Syntax,Rust,Lifetime,Rust Actix,我正在努力理解这个问题 pub fn资源(self,path:&str,f:f)->App 哪里 F:FnOnce(&mut资源)->R+'静态, 根据我的理解,resource是一个包含两个参数的函数:一个字符串片段和一个函数 该函数只能使用一次,并接受内部带有S的Resource的可变引用,并返回R,其中R和S是完全任意的 什么是R+static?R是f的返回值 如果查看actix网站,可以看到此值已被丢弃/未使用。我认为这主要是一件方便的事情;actix并没有指定一个()返回值,而是通过

我正在努力理解这个问题

pub fn资源(self,path:&str,f:f)->App
哪里
F:FnOnce(&mut资源)->R+'静态,
根据我的理解,
resource
是一个包含两个参数的函数:一个字符串片段和一个函数

该函数只能使用一次,并接受内部带有
S
Resource
的可变引用,并返回
R
,其中
R
S
是完全任意的


什么是
R+static

R
f
的返回值

如果查看
actix网站
,可以看到此值已被丢弃/未使用。我认为这主要是一件方便的事情;actix并没有指定一个
()
返回值,而是通过不关心从
f
返回的内容来简化操作


我认为应该将
静态
寿命理解为应用于
F
而不是
R
。也就是说,
f
(通常是闭包)应该有一个静态生存期。

关于最后一点,您是对的。此上下文中的
+
运算符组合了多个特征或生存期界限
R
不是一种特质,而是一种具体类型<另一方面,code>FnOnce(…)->R是一个特征边界,
静态
是一个生命周期边界,因此这两者可以与
+
结合使用。
pub fn resource<F, R>(self, path: &str, f: F) -> App<S>
where
    F: FnOnce(&mut Resource<S>) -> R + 'static,