我有一个函数,其签名如下所示:
pub fn get_rand_pose<num>() -> GenericArray<ElemType, num>
where num: ArrayLength<ElemType> + typenum::marker_traits::Unsigned;
然后我只想使用返回值的第一个元素,并将其传递给另一个函数,像这样:
let p = get_rand_pose::<typenum::U1>()[0];
other_fun(0, 1, p);
先前的示例无法编译。我收到以下错误消息:
cannot move out of here
help: consider using a reference instead
我需要将实际值提供给other_fun
而不是引用,所以这里的建议不好。
我要解决的问题是使用into_iter().next().unwrap()
来代替,但我想知道后者的效率如何,这是否是解决此问题的建议解决方案。
我不想创建GenericArray或第一个元素的多余副本,我只想抓住并使用它的第一个元素,而忽略数组的其余部分。我该怎么办?