gpt4 book ai didi

syntax - 如何部分初始化 ArrayVec?

转载 作者:行者123 更新时间:2023-11-29 08:13:45 27 4
gpt4 key购买 nike

我需要具有固定最大尺寸的结构,所以明显的选择似乎是 arrayvec crate 。但是,当 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].into_iter().collect(),
};

关于syntax - 如何部分初始化 ArrayVec?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53783516/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com