Mac*_*cki 5 string vector type-conversion slice rust
我有一个Vec<i8>我需要读为&str. 现在我找到了两种方法来做到这一点,但这两种方法都让我不高兴。
// Quite complex for something this simple
str::from_utf8(buffer.into_iter().map(|c| c as u8).collect::<Vec<u8>>().as_slice())
Run Code Online (Sandbox Code Playgroud)
和
// transmute makes me uncomfortable
str::from_utf8(mem::transmute::<Vec<i8>, Vec<u8>>(buffer).as_slice());
Run Code Online (Sandbox Code Playgroud)
有没有更简单的方法来实现这一目标?
您可能会发现转换为 aString更好,因为您可以将&Strings 传递给需要 s 的函数str。您可以将其缩短为大约
String::from_utf8(buffer.iter().map(|&c| c as u8).collect())
Run Code Online (Sandbox Code Playgroud)
后者可以缩短为
String::from_utf8(mem::transmute(buffer))
Run Code Online (Sandbox Code Playgroud)
我怀疑你能比这些做得更好。