我有一个Vec<Candle>
类型的candle_series
,它获取最后一个元素,我尝试使用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()
可能会更短。