【发布时间】:2020-05-16 04:55:47
【问题描述】:
我有这个:
let stuff = vec![1, 2, 3];
let tail = stuff[1..].iter().collect::<Vec<_>>();
println!("Hello, world! {:?}", tail);
我想知道这是否是惯用的,因为我发现对iter 的调用,然后是对collect 的详细调用。
【问题讨论】:
-
“stuff[1..]”有什么问题?!?你的问题很不清楚
-
@Stargateur 问题不在于“stuff[1..]”,而是首先必须这样做,然后调用 iter 然后收集。我原以为 Vec 上会有一种方法可以获取尾部……例如 stuff.tail() 或 stuff.take(1,2)
-
在提供的代码中,您正在将引用向量创建到原始向量中。这真的是你想要的吗?它非常小众,所以我不希望有专门的方法。
-
@sca 这最初是让我无法理解的,但您的评价是is correct。有了这个,我想不出你想要这个的理由。它具有与切片引用相同的生命周期约束,但具有额外的堆分配。
标签: rust