乐闻世界logo
搜索文章和话题

Rust 如何使用标准字符串类型?

4 个月前提问
4 个月前修改
浏览次数16

1个答案

1

在Rust中,标准字符串类型是String和字符串切片&strString是一个可增长的、可修改的、有所有权的UTF-8字符串类型,而&str则通常用来作为字符串的借用,它是一个指向有效UTF-8序列的切片,并且是不可变的。

创建String

要在Rust中创建一个新的String,您可以使用String::new()来创建一个空的字符串,或者使用String::from("initial content")来创建一个初始含有内容的字符串。

rust
let mut s = String::from("Hello");

更新String

String可以通过多种方式被修改。例如,您可以使用push_str()来添加字符串切片,或者使用push()来添加单一字符。

rust
s.push_str(", world!"); s.push('!');

使用String&str

当您想获取String的不可变引用时,可以使用&运算符。这样可以将String转化为&str类型。

rust
let s_slice: &str = &s;

示例:函数处理字符串

以下是一个简单的函数例子,展示了如何接收一个字符串切片作为参数并返回一个String

rust
fn greet(name: &str) -> String { format!("Hello, {}!", name) } let greeting = greet("Alice"); println!("{}", greeting); // 输出: Hello, Alice!

字符串与错误处理

处理字符串时,尤其是涉及到外部数据的字符串处理,很可能会遇到错误情况。例如,尝试从非法的字节序列创建字符串将会导致运行时错误。在这种情况下,最好使用String::from_utf8这样可以处理潜在的错误。

rust
let bytes = vec![0x48, 0x65, 0x6C, 0x6C, 0x6F]; // "Hello" 的 UTF-8 字节 let s = String::from_utf8(bytes); match s { Ok(valid_string) => println!("Converted string: {}", valid_string), Err(e) => println!("Failed to convert: {}", e), }

通过这几个例子,您可以看到在Rust中处理String&str的基本方法和一些常见的用例。

2024年8月7日 14:21 回复

你的答案