rust中的惯用类型转换String,&str,&[u8],Vec

Conversion From To Method(s)
&str -> String &str String String::from(s), s.to_string(), s.to_owned()
&str -> &[u8] &str &[u8] s.as_bytes()
&str -> Vec &str Vec s.as_bytes().to_vec() or s.as_bytes().to_owned()
String -> &str String &str &s if possible* else s.as_str()
String -> &[u8] String &[u8] s.as_bytes()
String -> Vec String Vec s.into_bytes()
&[u8] -> &str &[u8] &str std::str::from_utf8(s).unwrap()
&[u8] -> String &[u8] String String::from_utf8(s).unwrap()
&[u8] -> Vec &[u8] Vec s.to_vec()
Vec -> &str Vec &str std::str::from_utf8(&s).unwrap()
Vec -> String Vec String String::from_utf8(s).unwrap()
Vec -> &[u8] Vec &[u8] &s if possible* else s.as_slice()

*注意:将 String 转换为 &str 或将 Vec 转换为 &str 或 &[u8] 可能会导致悬挂引用,应该确保 String 或 Vec 在生命周期内有效。

相关推荐
大鱼七成饱10 小时前
Rust Web 初学者必看:用一个宏搞定错误处理和统一返回
rust
Vallelonga11 小时前
Rust 设计模式 Marker Trait + Blanket Implementation
开发语言·设计模式·rust
ftpeak14 小时前
《Cargo 参考手册》第二十一章:Cargo 包命令
开发语言·rust
Source.Liu17 小时前
【BuildFlow & 筑流】品牌命名与项目定位说明
c++·qt·rust·markdown·librecad
ftpeak18 小时前
《Cargo 参考手册》第二十二章:发布命令
开发语言·rust
JoannaJuanCV2 天前
error: can‘t find Rust compiler
开发语言·后端·rust
Kiri霧3 天前
在actix-web应用用构建集成测试
后端·rust·集成测试
muyouking113 天前
Tauri Android 开发踩坑实录:从 Gradle 版本冲突到离线构建成功
android·rust
Kiri霧3 天前
Rust开发环境搭建
开发语言·后端·rust
xuejianxinokok4 天前
什么是代数类型 ? java为什么要添加record,Sealed class 和增强switch ?
后端·rust