16、Rust 中的字符串、范围和切片

Rust 中的字符串、范围和切片

1. Rust 字符串操作与实现

在 Rust 里,字符串操作十分灵活,并且有着独特的实现方式。

1.1 字符串操作示例

下面的代码展示了一系列字符串操作:

a.pop(); // "H"
a.push('i'); // "Hi"
print!("{}", a);

这里,变量 a 初始为 “Xy”,先移除位置 0 的字符得到 “y”,接着在位置 0 插入 “H” 得到 “Hy”,再移除末尾字符得到 “H”,最后在末尾添加 “i” 得到最终的 “Hi”。

1.2 字符串的实现

Rust 的静态字符串与 C 语言字符串有相似之处,没有字符串终止符但多了一个计数器;而动态字符串则类似于 C++ 的 std::string 对象。Rust 和 C++ 的动态字符串类型都包含一个动态分配的字节数组,用于存储字符串的字符。

主要区别在于,C++ 字符串的每个字节恰好代表一个字符,而 Rust 的动态字符串和静态字符串的缓冲区都采用 UTF - 8 编码,所以一个字节不一定对应一个字符。

在 Rust 中,字符串与数组和向量有相似性。静态字符串缓冲区类似于数组,即 str 类型类似于通用的 [u8; N] 类型;动态字符串类似于字节向量,即 String 类型类似于 Vec<u8> </

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值