yni*_*ous 38 string slice rust
这看起来微不足道,但我找不到办法.
例如,
fn f(s: &[u8]) {}
pub fn main() {
let x = "a";
f(x)
}
Run Code Online (Sandbox Code Playgroud)
无法编译:
error: mismatched types:
expected `&[u8]`,
found `&str`
(expected slice,
found str) [E0308]
Run Code Online (Sandbox Code Playgroud)
但是,文件指出:
strs的实际表示具有与切片的直接映射:&str与&[u8]相同.
fjh*_*fjh 50
您可以使用as_bytes方法:
fn f(s: &[u8]) {}
pub fn main() {
let x = "a";
f(x.as_bytes())
}
Run Code Online (Sandbox Code Playgroud)
或者,在您的具体示例中,您可以使用字节文字:
let x = b"a";
f(x)
Run Code Online (Sandbox Code Playgroud)