空间做网站,基于c 的视频网站开发,大连做网站开发的公司,wordpress博客主题什么是String
Rust的核心语言中只有一个String类型#xff0c;那就是String slice,str通常被当作是str的借用。String类型是通过标准库提供的#xff0c;而不是直接编码到核心语言中#xff0c;它是一个可增长的、可变的、utf-8编码的类型。str和String都是utf-8编码的…什么是String
Rust的核心语言中只有一个String类型那就是String slice,str通常被当作是str的借用。String类型是通过标准库提供的而不是直接编码到核心语言中它是一个可增长的、可变的、utf-8编码的类型。str和String都是utf-8编码的。如果你想使用一个非utf-8编码的String可以使用OsString。
创建新的String
String实际上是通过包装bytes类型的vector实现的。使用new方法创建String:let mut s String::new()使用to_string方法创建String:let data initial contents;
let s data.to_string();
let s initial contents.to_string();使用String::from方法创建字符串let s String::from(initial contents).根据指定的容量创建一个空字符串let mut s String::with_capacity(10);。当字符串长度小于10的时候不会触发内存重分配。可以通过len方法查看字符串长度通过capacity方法查看字符串容量。通过utf-8类型的vector创建字符串let s_from_vec String::from_utf8(vec![0xe4, 0xbd, 0xa0, 0xe5, 0xa5, 0xbd]);。如果vector可能包含不合法的utf-8编码则可以用from_utf8_lossy这将使用占位符替换不合法的utf8字符: let invalid_utf8 vec![0xff, 0xff, 0xff];let s_from_invalid_utf8 String::from_utf8_lossy(invalid_utf8);更新String
Rust不允许使用下标访问字符串里面的单个字符
使用push_str和push追加字符串
let mut s String::from(foo);
s.push_str(bar);
// s is foobarpush_str方法不会改变字符串的所有权
let mut s String::from(lo);
s.push(l);
// s is lol使用操作符或者 format!宏连接字符串
let s1 String::from(Hello, );
let s2 String::from(world!);
let s3 s1 s2; // note s1 has been moved here and can no longer be usedlet s1 String::from(tic);
let s2 String::from(tac);
let s3 String::from(toe);let s format!({s1}-{s2}-{s3});扩大字符串容量
let mut s_origin String::with_capacity(10);
s_origin.push(1);
s_origin.reserve(10);
println!({}, s_origin.capacity()); \\ 容量至少是101一般会多分配一些迭代字符串的方法
可以使用chars方法访问独立的UniCode字符。使用bytes方法访问每一个字节。
for c in Зд.chars() {println!({c});
}将String类型转为其他类型
转为bytes数组
let s String::from(hello);
let bytes s.into_bytes();转为字符串切片str
let tmp_s String::from(hello);
let s_str tmp_s.as_str();