macros - 是否有 'stringify' 宏的字节等效项?

标签 macros rust

Rust 有一个 stringify!宏以获取字符串形式的表达式。 有没有办法获得输出字节的等效功能?

就好像表达式是写成字节字符串文字一样,例如:b"some text"


使用宏而不是 str.as_bytes() 的原因是转换函数不能用于构造 const 值。 See this question for why you might want to use this macro .

最佳答案

如果您正在使用 nightly Rust(自 1.28.0-nightly,2018-05-23 起),您可以启用 const_str_as_bytes 功能,将 as_bytes() 转换为一个 const 函数。

#![feature(const_str_as_bytes)]

fn main() {
    const AAA: &[u8] = stringify!(aaa).as_bytes();
    println!("{:?}", AAA);  // [97, 97, 97]
}

( Demo )

关于macros - 是否有 'stringify' 宏的字节等效项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42199312/

相关文章:

rust - 有没有一种方法可以简化没有宏将Option转换为Result的方法?

rust - 无法调用返回结果的函数:找到不透明类型 impl std::future::Future

c - 为什么像 memchr 这样的函数绑定(bind)到 C 实现而不是用纯 Rust 编写?

c++ - 标记粘贴运算符 (##) 正在占用我的 C++ 宏中的空格

python - 在MacOS上安装Python3

python - 从 Python 快速导入自定义 SPSS 命令

generics - 为实现特征的所有类型实现特征

visual-studio-code - 如何解决带有Rust VS Code扩展名的 "Couldn' t启动客户端Rust语言服务器”?

macros - 如何在 Rust 宏中匹配 "mut"?

macros - 如何打印变量名称及其值而不需要输入两次名称?