如何使 const
字符串的一部分以某些标志为条件?
#[cfg(target_os = "macos")]
const OS: &'static str = "OSx";
#[cfg(target_os = "windows")]
const OS: &'static str = "Windows";
const SOME_STRING: &'static str = format!("this os is {}", OS);
此代码无法编译,因为 format
宏返回一个 String
。我希望能够在没有任何分配的情况下进行这种格式化。是否可以不使整个字符串成为条件字符串?
最佳答案
嗯,首先,你应该知道 http://doc.rust-lang.org/stable/std/env/consts/constant.OS.html
其次,您不能真的准确地做到这一点。您可以使用 lazy_static
crate,但它最终仍会为您提供分配。
将来,当const fn
稳定时,这应该更容易做到。
关于rust - 如何格式化 const 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32279858/