rust - 如何格式化 const 字符串

标签 rust

如何使 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/

相关文章:

sorting - 如何对向量的一部分进行排序?

rust - 为什么 AsRef 不能用作参数类型注释但可以用于泛型声明?

rust - 未使用 termion 恢复终端状态

macos - 无法构建 sciter-rs 示例,-lsciter-osx-64 未找到

generics - 除了使用具有关联常量的特征之外,是否有更简单的方法来为通用结构配备常量?

rust - 理解错误 "Borrowed value does not live long enough"

rust - 如何使用Rust和Amethyst运行可执行文件

rust - 如何同时获取对两个数组元素的可变引用?

generics - 解析数字的通用函数因 "FromStr is not implemented"而失败

rust - 元组是否实现 `Copy` ?