TLDR:构造大型const
数组而无需手动逐个写入所有值的最佳方法是什么?
- 主观 * 问题如下:
我希望我的程序有一个const
array
,它将保存ASCII字节的范围([u8; 94]
),但我不想使用Range<u8>
。
我不使用Vec
的原因是,我已经知道了值的确切范围,我可以静态地完成这一切,我只是似乎找不到不手动写入每个值就能构造这样一个数组的方法。
在发布这个问题之前,我所做的是使用const
Range
,因为contains
是 O(1)。
总之关于原始问题,我想要这个:
const VALID_BLOCK_BYTES: [u8; 94] = [32..126; 94];
我如何获得值从32到126的常量变量数组,而不需要自己手动编写它?
1条答案
按热度按时间5vf7fwbs1#
我认为,现在实现这一目标的最佳方法是使用手动循环:
无法使用迭代器,因为常量上下文中的特性不稳定。
当然,如果您需要经常这样做,您可以将其分解为
const fn
。