惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

B
Blog RSS Feed
D
Darknet – Hacking Tools, Hacker News & Cyber Security
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
G
Google Developers Blog
MyScale Blog
MyScale Blog
Google DeepMind News
Google DeepMind News
J
Java Code Geeks
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
C
Check Point Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
P
Proofpoint News Feed
D
Docker
Jina AI
Jina AI
博客园 - 三生石上(FineUI控件)
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Help Net Security
Help Net Security
Google DeepMind News
Google DeepMind News
L
LINUX DO - 最新话题
T
Tailwind CSS Blog
N
Netflix TechBlog - Medium
Forbes - Security
Forbes - Security
MongoDB | Blog
MongoDB | Blog
Attack and Defense Labs
Attack and Defense Labs
Webroot Blog
Webroot Blog
A
About on SuperTechFans
Schneier on Security
Schneier on Security
Hacker News - Newest:
Hacker News - Newest: "LLM"
Microsoft Azure Blog
Microsoft Azure Blog
F
Fortinet All Blogs
IT之家
IT之家
The Last Watchdog
The Last Watchdog
腾讯CDC
Microsoft Security Blog
Microsoft Security Blog
Project Zero
Project Zero
B
Blog
Recorded Future
Recorded Future
博客园_首页
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
S
SegmentFault 最新的问题
Security Archives - TechRepublic
Security Archives - TechRepublic
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
H
Hacker News: Front Page
T
Threatpost
H
Heimdal Security Blog
Cloudbric
Cloudbric
Google Online Security Blog
Google Online Security Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
V2EX
云风的 BLOG
云风的 BLOG
V
Visual Studio Blog

博客园 - softfair

在Windows平台编译Substrate (How to compile and run Substrate on Windows) Truffle migrate deploy contract ESOCKETTIMEDOUT - How to fix Linux下一个最简单的不依赖第三库的的C程序(2) Linux下一个最简单的不依赖第三库的的C程序(1) windbg .net 程序的死锁检测 常用方法(个人备份笔记) 自定义经纬度索引(非RTree、Morton Code[z order curve]、Geohash的方式) 通过经纬度坐标计算距离的方法(经纬度距离计算) 根据2个经纬度点,计算这2个经纬度点之间的距离(通过经度纬度得到距离) The version of SOS does not match the version of CLR you are debugging; SOS.dll版本不匹配; Dump文件不同环境mscordacwks.dll版本问题 WCF 4.0 如何编程修改wcf配置,不使用web.config静态配置 WCF4.0安装 NET.TCP启用及常见问题 Windbg 脚本命令简介 二, Windbg command Windbg 脚本命令简介 一 what’s new in the .NET CLR 4.0/4.5 GC (.NET 4/4.5里新的垃圾收集机制) Windows中内存管理的一些知识 SSO(Single Sign-on) in Action 阿里巴巴将跌破1元股价 word 2007 中插入图片无法显示,只能显示底部一部分 Linux 动态库剖析
Rust 里 String,str,Vec<u8>,Vec<char> 相互转换【Conversion between String, str, Vec<u8>, Vec<char> in Rust】
softfair · 2021-12-18 · via 博客园 - softfair

Rust 里 String 如何转换为 &str
Rust 里 String 如何转换为 Vec
Rust 里 String 如何转换为 Vec
或其他相互转换,请看:

use std::str;

fn main() {
// 起始:Vec
let src1: Vec<char> = vec!['j','{','"','i','m','m','y','"','}'];
// 从 Vec 转换为String
let string1: String = src1.iter().collect::<String>();
// 从 Vec 转换为&str
let str1: &str = &src1.iter().collect::<String>();
// 从 Vec 转换为Vec
let byte1: Vec<u8> = src1.iter().map(|c| *c as u8).collect::<Vec<_>>();
//输出
println!("Vec<char>:{:?} | String:{:?}, str:{:?}, Vec<u8>:{:?}", src1, string1, str1, byte1);

// 起始:Vec 字节数组
// in rust, this is a slice
// b - byte, r - raw string, br - byte of raw string
let src2: Vec<u8> = br#"e{"ddie"}"#.to_vec();
// 从 Vec 转换为String
// from_utf8 以utf8方式转换
let string2: String = String::from_utf8(src2.clone()).unwrap();
// 从 Vec 转换为 &str
let str2: &str = str::from_utf8(&src2).unwrap();
// 从 Vec 转换为Vec
let char2: Vec<char> = src2.iter().map(|b| *b as char).collect::<Vec<_>>();
//输出
println!("Vec<u8>:{:?} | String:{:?}, str:{:?}, Vec<char>:{:?}", src2, string2, str2, char2);

// 起始为一个 String
let src3: String = String::from(r#"o{"livia"}"#);
// 直接变为一个&str
let str3: &str = &src3;
// 从 String 转换为Vec
let char3: Vec<char> = src3.chars().collect::<Vec<_>>();
// 从String转换为Vec
let byte3: Vec<u8> = src3.as_bytes().to_vec();
//Print
println!("String:{:?} | str:{:?}, Vec<char>:{:?}, Vec<u8>:{:?}", src3, str3, char3, byte3);

// 起点为 &str
let src4: &str = r#"g{'race'}"#;
// 从&str转换为String
let string4 = String::from(src4);
//从&str 转换为 Vech
let char4: Vec<char> = src4.chars().collect();
// 从 &str 转换为 Vec
let byte4: Vec<u8> = src4.as_bytes().to_vec();
//输出
println!("str:{:?} | String:{:?}, Vec<char>:{:?}, Vec<u8>:{:?}", src4, string4, char4, byte4);
}

参考:
https://gist.github.com/jimmychu0807/9a89355e642afad0d2aeda52e6ad2424