在编译时获取 `str` 的字节

Cam*_*lid 2 string constants rust

有没有办法str在 Rust 的编译时获取 a 的字节?具体来说,我想创建一个const喜欢:

const FOO_BYTES: [u8; 3] = [70, 79, 79];
Run Code Online (Sandbox Code Playgroud)

但我想写出一个字符串文字而不是手动编写编码的字节。

使用 plainstr::as_bytes不起作用,因为它返回一个切片 ( &[u8])。我尝试使用try_into,但这给出了不同的错误:

常量调用仅限于常量函数、元组结构和元组变体

因为try_into不是const fn. 我该怎么办?

kmd*_*eko 5

您可以使用前缀b来创建字节字符串文字

const FOO_BYTES: &[u8; 3] = b"FOO";
Run Code Online (Sandbox Code Playgroud)

如果您不想要引用,只需取消引用*它:

const FOO_BYTES: [u8; 3] = *b"FOO";
Run Code Online (Sandbox Code Playgroud)