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

相关推荐
半夏知半秋20 分钟前
rust学习-rust中的格式化打印
服务器·开发语言·后端·学习·rust
wang_yb1 小时前
Rust多线程中安全的使用变量
rust·databook
m0_748254883 小时前
项目升级Sass版本或升级Element Plus版本遇到的问题
前端·rust·sass
半夏知半秋1 天前
rust学习-rust中的保留字
服务器·开发语言·后端·学习·rust
SomeB1oody1 天前
【Rust自学】15.0. 智能指针(序):什么是智能指针及Rust智能指针的特性
开发语言·后端·rust
Hello.Reader1 天前
Rust 中的结构体使用指南
前端·算法·rust
SomeB1oody1 天前
【Rust自学】14.5. cargo工作空间(Workspace)
开发语言·后端·rust
^_^ 纵歌1 天前
rust并发和golang并发比较
开发语言·golang·rust
Hello.Reader1 天前
Rust 中的方法与关联函数详解
服务器·开发语言·rust
SomeB1oody1 天前
【Rust自学】14.4. 发布crate到crates.io
开发语言·后端·rust