これは些細なことのように思えますが、私はそれを行う方法を見つけることができません。
例えば、
fn f(s: &[u8]) {}
pub fn main() {
let x = "a";
f(x)
}
次を使用してコンパイルできません。
error: mismatched types:
expected `&[u8]`,
found `&str`
(expected slice,
found str) [E0308]
ドキュメント ただし、次のように述べています:
Strの実際の表現には、スライスへの直接マッピングがあります。&strは&[u8]と同じです。
as_bytes メソッドを使用できます。
fn f(s: &[u8]) {}
pub fn main() {
let x = "a";
f(x.as_bytes())
}
または、特定の例では、バイトリテラルを使用できます。
let x = b"a";
f(x)