2

Rust 中的字符串详解

 1 year ago
source link: https://www.jdon.com/67114.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Rust 中的字符串详解

在许多编程语言中,操作字符串是编写应用程序的一个重要方面。以性能和安全性而闻名的 Rust 编程语言也不例外。本文深入探讨了 Rust 中的字符串,包括可以简化您的编码体验的特殊符号和“技巧”。

理解 Rust 中的基本字符串
在最基本的层面上,Rust 中的字符串表示为编码为 UTF-8 字节流的 Unicode 标量值序列。字符串是使用双引号创建的""。

let s = "Hello, World!";

在此代码片段中,s是一个包含文本“Hello, World!”的字符串。

字符串文字和字符串切片
在 Rust 中,字符串文字是一个切片 (&str),它指向程序二进制输出的特定部分——它是只读的,因此是不可变的。这也是字符串文字有时被称为“静态字符串”的原因。

let s: &'static str = "Hello, World!";

这里,s是一个指向字符串“Hello, World!”的字符串切片。

原始字符串
在Rust中,字符串字头前的r表示一个原始字符串。原始字符串忽略了所有的转义字符,并按原样打印字符串。当你想避免在字符串中转义反斜线时,这很有帮助,例如,在正则表达式或文件路径中。

let s = r"C:\Users\YourUser\Documents";

字节串
Rust 也有字节字符串的概念。它们与文本字符串类似,但它们是由字节而不是字符构成的。
您可以通过在字符串文字前添加"b"前缀来创建字节字符串:

let bs: &[u8; 4] = b"test"; // bs is a byte array: [116, 101, 115, 116]

原始字节字符串
原始字节字符串是原始字符串和字节字符串的组合。这种类型的字符串对于包含可能不是有效 UTF-8 的字节序列非常有用。
原始字节字符串是通过在字符串文字前添加前缀“br” 来创建的。

let raw_bs = br"\xFF"; // raw_bs is a byte array: [92, 120, 70, 70]

在原始字符串中转义
如果你需要在一个原始字符串中包含引号,你可以通过在字符串的两边添加额外的符号来实现

let s = r#"This string contains "quotes"."#;

多行原始字符串
原始字符串可以是多行的。字符串的内容从不只包含# 的第一行开始。

let s = r####"
This string contains "quotes".
It also spans multiple lines.
"####;

统一码Unicode 字符串
Rust 中的字符串文字还可以包含任何有效的 Unicode 字符。

let s = "Hello, 世界!";

Escapes转义字符
常规(非原始)字符串文字支持多种转义序列:

\\ 反斜杠
\" 双引号
\n 新行
\r 回车符
\t Tab
\0 null

还有 Unicode 转义:

  • \u{7FFF} Unicode 字符(可变长度,最多 6 位数字)
  • \u{1F600}统一表情符号

结论
总之,Rust 提供了强大而灵活的工具来处理字符串。从原始字符串和字节字符串到 Unicode 和转义序列,


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK