rust 基本类型 char, str 和 String
字符串类型
doc.rust-lang.org/std/index.h… 学习中不要忘了 rust 标准
Rust的文本类型主要包含6种:
character
: rust类型为:charstring
: rust类型为:&strraw string
:byte
byte string
raw byte string
rust 标准库中的 string
char
用于存放单个unicode字符,占用4字节空间(32bit)。std::str
字符串切片类型(字符串字面量)std::string::String
标准库 std::char
use std::char; println!("{}", char::from_u32(0x2764).unwrap()); // ❤ 复制代码
标准库 std::str
str 需与 &
使用 &str
表示切片类型。基本数据类型, 存放于栈中
let a: &str = "this is std::str"; // 切片类型 let b = [12, 23]; println!("{}-{:?}", a, b); 复制代码
str 切片类型不能直接访问(动态大小类型),必须使用 &
表示引用字符串。下面是一个切片生成另外一个切片
let s: &str = "this slice type string" let d: &str = &s[..5] 复制代码
切片字符串的特点:不可变,只能通过应用的方式切片引用部分来使用。当然,类型转换我们回放在后面涉及到。
标准库 std::string::String
String 类型,相对于 str 切片类型就比较灵活。String 可以直接使用,不用使用 use 关键字导入。引用数据类型,存放于堆中:
new 方法创建一个空字符
let empty_str = String::new() 复制代码
from 方创建一个字符串
const str: String = String::from("this is flex string"); 复制代码
str 与 String 类型之间的相互转换
String -> str 是廉价的
解除引用: 为 String 使用一个 Deref 方法
使用
+
连字符
str -> String 并不是廉价的
重新分配
作者:逍遥_乔治
链接:https://juejin.cn/post/7023779371261362184