2、数组(Array) 3、字符串(String) 三、自定义数据类型 1、结构体(Struct) 2、枚举(Enum) 四、其他数据类型 1、切片(Slice) 2、Option类型 3、Result类型 总结 导言 Rust是一种现代的、安全的系统编程语言,注重内存安全和并发性。在Rust中,数据类型是程序中最基本的构建块之一。本篇博客将详细解释Rust的各种...
let _string: String = String::from("hello world"); println!("_string 的长度: {}", _string.len()); println!("_string 的容量: {}", _string.capacity()); } 字符串切片类型和字符串类型类似,对于字符串而言,切片就是对 String 类型中某一部分的引用: let _s: String = String::from("Hell...
enum Book{ Yuwen(String), Shuxue(String), } fn main(){ println!("Rust Programming"); let b1=Book::Yuwen(String::from("床前明月光")); println!("{}",work(b1)); let b2=Book::Shuxue(String::from("x+y=0")); println!("{}",work(b2)); } fn work(book:Book)->String{ match...
字符串是一种文本数据类型,它由一系列Unicode字符组成。在Rust中,字符串类型使用String表示,它是一个可增长的、可变的字符串类型。 以下是一个字符串的示例: 代码语言:javascript 复制 fnmain(){letmessage:String=String::from("Hello, Rust!");println!("Message: {}",message);} 三、自定义数据类型 Rust允...
b:String::from("abcd"), }; } 我们来访问这个结构体实例变量: println!("{:#?}{:#?}",sb1,sb2); 别忘了在结构体前面加上#[derive(Debug)]标识符。 enum类型绑定数据类型 枚举的独特之处: enumEx1{ Name(String), Age(u32), } 我们创建了一个枚举,这个枚举的字段绑定了两个值,分别是String的...
除基本类型外最常用的类型是字符串String、结构体struct、枚举enum、向量Vector和字典HashMap(也叫哈希图)。string、struct、enum、vector、HashMap的数据都是在堆内存上分配空间,然后在栈空间分配指向堆内存的指针信息。函数也可以算是一种类型,此外还有闭包、trait。这些类型各有实现方式,复杂度也高。
let name: Option<String> = Some("Fred".to_string()); } Option用于某些地方可能存在有值或没值的情况。Option 及成员已经被自动包含,所以我们不需要Option::Some(xxx)这样来使用。 match 匹配 对于enum类型的值,我们不能直接比较,看下面的代码,是无法编译通过的。
let s2 = String::from("rust"); let s3 = format!("{}-{}", s1, s2); println!("format: {}", s3); } 我们对上面的代码做一些补充的解释。 push和insert类似,带有_str的方法接收的参数是字符串,否则只能接收单个字符。insert可以指定插入的位置,而push只能在字符串末尾插入。
Rust中的From和Into是两个重要的trait,它们可以帮助我们进行类型转换。From trait允许我们从一个类型转换到另一个类型,而Into trait则允许我们将一个类型转换为另一个类型。这两个trait的实现可以帮助我们更好地处理类型转换的问题。 本教程将介绍Rust中的From和Into trait的基础使用方法和进阶用法。 基础用法 从字符...
enum Data { Empty, Number(i32), Array(Vec<i32>), } Empty变体不存储任何其它数据,Number变体中有一个 i32,Array变体保存了一个元素类型为 i32 的 Vec。首先来看一下Array变体的内存布局: 首先是一个整数标记,这里就是 2 。然后是三个 usize 用来存储 Vec 。编译器还将添加一些 padding 以满足内存对齐。