仅将第一个元素移出GenericArray

时间:2018-09-02 12:17:02

标签: rust

我有一个函数,其签名如下所示:

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或第一个元素的多余副本,我只想抓住并使用它的第一个元素,而忽略数组的其余部分。我该怎么办?

0 个答案:

没有答案