一个新手的问题,但我已经把头撞在墙上两个小时了...
我的程序中有两个不同的数组:
const ARRAY_1: [u8; 2] = [0xe8, 0xe3, 0x37, 0x00];
const ARRAY_2: [u8; 4] = [0xe8, 0xe3];
我想写这样的东西:
if condition1 {
let ARRAY_CHOSEN: [&[u8]; 2] = ARRAY_1;
}
else if condition2 {
let ARRAY_CHOSEN: [&[u8]; 4] = ARRAY_2;
}
然后在函数的其余部分使用ARRAY_CHOSEN...
但当然它不起作用,因为ARRAY_CHOSEN包含在{}中!
--〉我该怎么做呢?根据条件选择2个元素的数组还是4个元素的数组?
谢谢你们
2条答案
按热度按时间xn1cxnb41#
根据您以后打算如何使用数组,可以将它们强制转换为切片(键入
&[u8]
):irlmq6kh2#
一般来说,这在Rust代码中不是一个可行的模式,你可以使用const泛型,但是如果你是一个初学者,我建议你不要使用const泛型,因为它们只适合特定的用例。
只需使用一个
Vec
,它可以是任意大小,沿着将if条件作为表达式: