generics - 如何描述返回泛型类型的柯里化函数的生命周期?
问题描述
我正在尝试编写一个函数,将两个变量的函数库化为一个变量的函数值函数。
当涉及的类型都很简单时,没有问题:
fn curry1(f: fn(i32, i32) -> i32) -> Box<Fn(i32) -> Box<Fn(i32) -> i32>> {
Box::new(move |x| Box::new(move |y| f(x, y)))
}
一旦我尝试使任何参数通用,我就会遇到无法解决的生命周期问题:
fn curry2<Z>(f: fn(i32, i32) -> Z) -> Box<Fn(i32) -> Box<Fn(i32) -> Z>> {
Box::new(move |x| Box::new(move |y| f(x, y)))
}
the parameter type Z may not live long enough to satisfy its required lifetime bounds
我怎样才能正确地描述和注释相关的生命周期?
解决方案
推荐阅读
- r - 创建自定义几何图形时使用美学为子图着色
- c# - 解耦依赖于另一个类的类,该类的构造函数带有参数
- php - 如何在 Symfony 命令中使用邮件程序和日期时间注入服务?
- c# - Windows UWP 桌面应用程序中的 USB 大容量存储设备通信
- javascript - 我无法在 indexedDB(Firefox) 中关闭我的数据库
- python - 如何确保函数在 jupyter 会话中只运行一次?
- python - OpenCV inRange() 适用于 RGB 但不适用于 HSV 颜色空间
- python - Python3 - 嵌套列表/字典迭代
- powerbi - 跨所有表的动态 COUNTROWS 度量
- java - 文本在屏幕上不断滚动