«

Rust - String

ljierui 发布于 阅读:174 技术杂谈


字符串

1、字符串就是基于字节byte的集合

2、能将byte解析为文本

1、字符串是什么

1、Rust的核心语言层面,只有一个字符串类型:字符串切片str(或&str)

2、字符串切片:对存储在其他地方、UTF-8编码的字符串的引用
-字符串字面值:存储在二进制文件中,也是字符串切片

2、String类型

1、来自标准库而不是核心语言

2、它是可增长、可修改、可拥有的

3、它采用的是UTF-8编码

2.1、通常说的字符串是指

1、String和&str(字符串切片)这两种类型

2.2、其他类型的字符串

1、Rust的标准库还包含了很多其他的字符串类型,例如:OsString、OsStr、CString、CStr

3、创建一个新的字符串(String)

1、很多Vec<T>的操作都可用于String

2、通过String::new()函数创建

3、常用的创建方法:使用初始值来创建String

4、更新String

1、pust_str()方法:把一个字符串切片(&strs)附加到string

2、pust()方法:把单个字符附加到string

5、拼接字符串

1、+号连接

2、format! 宏:这个不会获取任何字符串的所有权


 let ss3 = format!("{}-{}",ss,ss1);
// 拼接字符串
 let ss = String::from("hello");
 let ss1 = String::from("world");
 //let add_ss = ss + &ss1;
 //println!("{}",add_ss);
 // println!("ss的值:{}",ss); 不能使用这值
 println!("ss1的值:{}",ss1);

 // format!宏:连接多个字符串
 let ss3 = format!("{}-{}",ss,ss1);

6、为什么String类型不能通过索引表示?

1、String类型是不支持通过索引的方式访问,因为string没有实现一个trait

7、内部表示

1、String类型,内部其实是Vec<u8>组成的

2、Rust有三种看待字符串的方式:

3、Rust不允许对String进行索引的最后一个原因

rust语言学习

推荐阅读: