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,