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

相关推荐
时空系5 小时前
第9篇:成员功能——为结构体添加能力 Rust中文编程
开发语言·网络·rust
小杍随笔9 小时前
Rust桌面GUI框架:性能优化与实战避坑指南
开发语言·性能优化·rust
Rust语言中文社区9 小时前
【Rust日报】2026-05-02 Temper - 用 Rust 编写的 Minecraft 服务器项目发布 0.1.0 版
运维·服务器·开发语言·后端·rust
Rust研习社12 小时前
Rust 的 Box、Rc、Arc 到底怎么选?
开发语言·后端·rust
x-cmd12 小时前
agent-browser 源码分析(二):WebSocket CDP 客户端
websocket·rust·cdp·json-rpc·agent-browser
x-cmd13 小时前
agent-browser 与 CDP:浏览器自动化的底层原理
rust·浏览器自动化·cdp·agent-browser·chrome devtools protocol
时空系1 天前
认识Rust——我的第一个程序 Rust中文编程
开发语言·后端·rust
时空系1 天前
第10篇:归属权与借用——Rust的安全保障 Rust中文编程
开发语言·安全·rust