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 在生命周期内有效。

相关推荐
wadesir5 小时前
深入理解Rust静态生命周期(从零开始掌握‘static的奥秘)
开发语言·后端·rust
脑极体10 小时前
蓝河入海:Rust先行者vivo的开源之志
开发语言·后端·rust·开源
badmonster011 小时前
实时代码库索引:用 CocoIndex 构建智能代码搜索的终极方案
python·rust
黛色正浓14 小时前
【React】极客园案例实践-项目搭建和登录模块
前端·react.js·rust
思密吗喽14 小时前
npm install 报错,解决 node-sass@4.14.1 安装失败问题
rust·npm·node.js·毕业设计·sass·课程设计
青云交14 小时前
深度实战:Rust交叉编译适配OpenHarmony PC——ansi_term完整适配案例
rust·交叉编译·命令行工具·openharmony pc·ansi_term·适配案例·终端颜色
星释14 小时前
Rust 练习册 106:太空年龄计算器与宏的魔法
开发语言·后端·rust
ALex_zry16 小时前
系统编程的基石:补码循环溢出与Rust变量绑定的深度探索
开发语言·后端·rust
ALex_zry16 小时前
Rust语言基础分析与C++对比:系统编程的现代演进
java·c++·rust
星释16 小时前
Rust 练习册 105:从零开始实现链表数据结构
数据结构·链表·rust