"R + 'static" 语法在 "F: FnOnce(&mut Resource<S>) -> R + 'static" 中是什么意思?
What does the "R + 'static" syntax mean in "F: FnOnce(&mut Resource<S>) -> R + 'static"?
我正在尝试了解 following code in actix-web
pub fn resource<F, R>(self, path: &str, f: F) -> App<S>
where
F: FnOnce(&mut Resource<S>) -> R + 'static,
根据我的理解,resource
是一个接受 2 个参数的函数:一个字符串切片和一个函数。
该函数只能使用一次并接受 Resource
的可变引用,其中 S
和 returns R
其中 R
和 S
完全是任意的。
什么是 R + static
?
R
是 f
的 return 值。
如果您查看 actix-web
source 内部,您可以看到此值已被 discarded/not 使用。我认为这主要是为了方便; actix 不是指定 ()
return 值,而是通过不关心 f
.
中的 return 来简化操作
我认为 'static
生命周期应该理解为适用于 F
而不是 R
。也就是说,f
(通常是一个闭包)应该有一个静态的生命周期。
我正在尝试了解 following code in actix-web
pub fn resource<F, R>(self, path: &str, f: F) -> App<S>
where
F: FnOnce(&mut Resource<S>) -> R + 'static,
根据我的理解,resource
是一个接受 2 个参数的函数:一个字符串切片和一个函数。
该函数只能使用一次并接受 Resource
的可变引用,其中 S
和 returns R
其中 R
和 S
完全是任意的。
什么是 R + static
?
R
是 f
的 return 值。
如果您查看 actix-web
source 内部,您可以看到此值已被 discarded/not 使用。我认为这主要是为了方便; actix 不是指定 ()
return 值,而是通过不关心 f
.
我认为 'static
生命周期应该理解为适用于 F
而不是 R
。也就是说,f
(通常是一个闭包)应该有一个静态的生命周期。