这个问题在这里已有答案:
我有一个频繁调用的函数,它需要向量中的字母。
在运行时期间这样做很容易:
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", ...];
自动生成。
或者最好不要担心这种优化,因为编译器无论如何都会这样做?
如果您希望在编译时生成的内容很复杂,并且您不方便手工编写硬编码,那么您可以为它编写一个build script。然后,构建脚本将生成“硬编码”防锈代码并将其写入文件。然后你将include从你通常的代码生成的文件。