snippetrustCritical
How to convert a &str to a &[u8]
Viewed 0 times
converthowstr
Problem
This seems trivial, but I cannot find a way to do it.
For example,
Fails to compile with:
documentation, however, states that:
The actual representation of strs have direct mappings to slices: &str
is the same as &[u8].
For example,
fn f(s: &[u8]) {}
pub fn main() {
let x = "a";
f(x)
}Fails to compile with:
error: mismatched types:
expected `&[u8]`,
found `&str`
(expected slice,
found str) [E0308]documentation, however, states that:
The actual representation of strs have direct mappings to slices: &str
is the same as &[u8].
Solution
You can use the as_bytes method:
or, in your specific example, you could use a byte literal:
fn f(s: &[u8]) {}
pub fn main() {
let x = "a";
f(x.as_bytes())
}or, in your specific example, you could use a byte literal:
let x = b"a";
f(x)Code Snippets
fn f(s: &[u8]) {}
pub fn main() {
let x = "a";
f(x.as_bytes())
}let x = b"a";
f(x)Context
Stack Overflow Q#31289588, score: 144
Revisions (0)
No revisions yet.