generics - 是否可以在具有泛型参数和返回类型的结构中使用闭包?
问题描述
是否可以用通用参数和返回类型替换下面的闭包?
struct HMHolder<T>
where
T: Fn(u32) -> u32,
{
calculation: T,
value: HashMap<String, i32>,
}
例如,我可以Fn<U, V>(x: U) -> V
在该结构中创建并创建一个构造函数吗?
解决方案
也许像这样(为其他未使用的类型参数指定一个幻像类型):
struct HMHolder<I, R, Calculation>
where
Calculation: Fn(I) -> R,
{
calculation: Calculation,
value: std::collections::HashMap<String, i32>,
marker: std::marker::PhantomData<(I, R)>,
}
推荐阅读
- c++ - 并发调用 ASIO 对象的 API 是否安全?
- html - 刷新页面CSS后重置链接
- javascript - $ 无法在 Javascript/jQuery 代码中识别 - 尝试使用类名 =“jeff”为模块设置动画
- java - Java TreeMap 有两个键并且可以使用单个键?
- python - Micropython - 如何在后台接收数据
- ffmpeg - ffmpeg 使用调色板将 mp4 转换为 gif 会导致视频被截断
- r - 将日期添加到非日期数字变量?
- python - 如何使用 python 行继续在 tkinter 上的文本中删除不需要的选项卡
- excel - 如何将动态范围与移动的“总”单元格相加?
- javascript - 通过 javascript 调整网络摄像头(用户媒体)摄像头设置