苏州专业做网站公司哪家好,wordpress 当前文章分类id,网站信息内容建设管理,电商网站开发要哪些技术文章目录 一、基本使用教程1、字符串类型Stringstr 2、创建字符串创建String创建str 3、字符串操作索引切片格式化字符串比较 4、字符串和集合5、字符串的错误处理6、参考链接 二、代码演示1、代码演示2、执行结果 一、基本使用教程
在Rust中#xff0c;字符串是编… 文章目录 一、基本使用教程1、字符串类型Stringstr 2、创建字符串创建String创建str 3、字符串操作索引切片格式化字符串比较 4、字符串和集合5、字符串的错误处理6、参考链接 二、代码演示1、代码演示2、执行结果 一、基本使用教程
在Rust中字符串是编程中非常基础且重要的部分。Rust提供了两种主要的字符串类型String和str。本教程将带你了解Rust中字符串的基本概念和操作。
1、字符串类型
String
String是一个可增长的、拥有所有权的、UTF-8编码的字符串类型。它在堆上分配内存因此可以动态地增加或减少其长度。
str
str是一个字符串切片它是一个指向某个字符串数据的引用。它不拥有数据因此是不可变的。
2、创建字符串
创建String
let mut s String::new(); // 创建一个空的String
s.push_str(Hello, Rust!); // 向String中添加内容创建str
let data Hello, Rust!;
let s data; // 创建一个指向data的字符串切片3、字符串操作
索引
在Rust中字符串不能通过索引直接访问单个字符因为它们是UTF-8编码的。但是可以使用chars()方法迭代字符。
for c in Hello, Rust!.chars() {println!({}, c);
}切片
可以使用切片操作来获取字符串的一部分。
let s String::from(Hello, Rust!);
let slice s[7..12]; // 获取Rust这个切片格式化
使用format!宏可以创建格式化的字符串。
let name World;
let greeting format!(Hello, {}!, name);字符串比较
字符串可以使用和!运算符进行比较。
assert_eq!(Hello, Hello);
assert_ne!(Hello, hello);4、字符串和集合
字符串可以很容易地被放入集合中如Vec和HashSet。
let mut words vec![Rust, is, awesome];
words.push(and);5、字符串的错误处理
在处理字符串时可能会遇到一些错误例如
IndexError尝试访问不存在的索引Utf8Error处理非UTF-8编码的字节序列
6、参考链接
Rust官方文档Rust by Example
二、代码演示
1、代码演示
fn main() {// 创建String和strlet mut s String::new();s.push_str(Hello, Rust!);let s_slice: str Hello, Rust!;// 索引和切片for c in s.chars() {println!({}, c);}let slice s[7..12]; // 应输出 Rustprintln!({}, slice);// 格式化字符串let name World;let greeting format!(Hello, {}!, name);println!({}, greeting); // 应输出 Hello, World!// 字符串比较assert_eq!(s_slice, Hello, Rust!);assert_ne!(s_slice, hello, Rust!);// 字符串和集合let mut words vec![Rust, is, awesome];words.push(and);assert_eq!(words, vec![Rust, is, awesome, and]);// 测试字符串的错误处理// 注意以下代码将会引发错误仅作为示例不应在实际代码中使用// let error_slice s[12..20]; // 这将引发panic因为索引越界// println!({}, error_slice);println!(All tests passed!);
}
2、执行结果
C:/Users/Administrator/.cargo/bin/cargo.exe run --coloralways --package hello --bin helloFinished dev [unoptimized debuginfo] target(s) in 0.00sRunning target\debug\hello.exe
H
e
l
l
o
, R
u
s
t
!
Rust!
Hello, World!
All tests passed!进程已结束退出代码为 0