作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要具有固定最大尺寸的结构,所以明显的选择似乎是 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/
我需要具有固定最大尺寸的结构,所以明显的选择似乎是 arrayvec crate 。但是,当 ArrayVec 是稍后需要部分初始化的结构的成员时,我被卡住了: use arrayvec::Array
我是一名优秀的程序员,十分优秀!