我需要具有固定最大尺寸的结构,所以显而易见的选择似乎是“AA>”。但是,当ArrayVec
是稍后需要部分初始化的结构的成员时,我会陷入困境:
use arrayvec::ArrayVec; // 0.4.7
#[derive(Debug)]
struct Test {
member_one: Option<u32>,
member_two: ArrayVec<[u16; 5]>,
}
pub fn main() {
let mut test = Test {
member_one: Some(45678),
member_two: [1, 2, 3], // <- What to do here to initialise only 3 elements?
};
print!("{:?}", test);
}
我想初始化
ArrayVec
的前三个元素,因为它完全可以容纳从0到5的任意数量的元素(在我的示例中),但我不知道如何实现。 最佳答案
您可以从迭代器收集到ArrayVec
:
let mut test = Test {
member_one: Some(45678),
member_two: [1, 2, 3].iter().cloned().collect(),
};