我有一个经常被调用的函数,该函数需要向量中的字母。
在运行时这样做很容易:
let alphabet = (b'a'..b'z').map(|c| c as char).map(|c| c.to_string());
// Do some stuff with the alphabet...
好的,可以创建另一个函数来创建该字母,然后在其上应用记忆...
...但是我听说锈具有强大的宏功能。
在编译期间如何创建此向量-或最好是类型为str
的项的固定大小的数组?
换句话说,我确实想要这样的东西
const alphabet: [&'static str; 26] = ["a", "b", ...];
自动生成。
还是最好不要担心这种优化,因为编译器还是会这样做?
答案 0 :(得分:3)
如果要在编译时生成的内容很复杂,并且您不习惯手工对其进行硬编码,则可以为其编写一个build script。然后,构建脚本将生成“硬编码”锈代码并将其写入文件。然后,您将根据常规代码include生成文件。