rust - 当 Option::unwrap_or_default 包含引用时,如何使用它?
问题描述
我有一个获取最后一个元素candle_series
的类型Vec<Candle>
,我尝试使用unwrap_or_default
:
self.candle_series.last().unwrap_or_default()
但后来我得到这个错误:
method not found in `std::option::Option<&market::Candle>
如何获得unwrap_or_default
结构而不是引用的行为?
我目前的解决方法是这样,但它似乎不正确。如果正确,请告诉我:
self.candle_series.last().unwrap_or(&Candle::default())
解决方案
如何获得
unwrap_or_default
结构而不是引用的行为?
您需要复制或移动引用(例如使用Option::cloned
,假设您的结构是Clone
),以便您的选项是Option<Candle>
,并且unwrap_or_default
可以完成它的工作。
我目前的解决方法是这样,但它似乎不正确。
对我来说看起来不错,但当然它可能会更短,例如Candle::new()
如果你有这样的初始化程序。
推荐阅读
- php - Laravel/Eloquent 规范化 JSON 响应的关系?
- reactjs - 如何在 ListItemText 中使用显示组件?
- email - Google Cloud 上的 SMTP 电子邮件服务器托管 - 套接字错误 10060
- sharepoint - 如何上传 SharePoint 文档的自定义缩略图
- python - 如何在第二个显示器/显示器上打开 Tkinter GUI?(视窗)
- sql - 关于两个日期之间值总和的 SQL 查询
- reactjs - react-navigation 5和Formik处理提交不起作用
- c++ - 复制构造函数没有被调用
- c++ - 运行使用自定义 gcc 编译的应用程序时,动态链接器直接调用分段错误
- r - R中日期类对象中的字符数