2、数组(Array) 3、字符串(String) 三、自定义数据类型 1、结构体(Struct) 2、枚举(Enum) 四、其他数据类型 1、切片(Slice) 2、Option类型 3、Result类型 总结 导言 Rust是一种现代的、安全的系统编程语言,注重内存安全和并发性。在Rust中,数据类型是程序中最基本的构建块之一。本篇博客将详细解释Rust的各种...
2、枚举(Enum) 枚举是一种自定义的数据类型,它可以表示多个可能的值。枚举使用enum关键字定义,并可以包含不同的变体(variant)。 以下是一个枚举的示例: 代码语言:javascript 复制 enumFruit{Apple,Banana,Orange,}fnmain(){letfruit:Fruit=Fruit::Apple;match fruit{Fruit::Apple=>println!("It's an apple!")...
"Odin".to_string(), "Thor".to_string(), "Loki".to_string(), ]; 现在我们看一下需要在堆上分配数据的情况。此处示例一个在堆上分配了 String 的 Vector,每个字符串使用三个 usize 表示,分别存储着数据地址、容量和长度。在为 Vector 分配的堆内存中,用于存储字符串 header 的数据依次排列,真正用于存储...
enum 和使用enum作为字段的struct,都需要实现对应的trait: #![allow(dead_code)] use std::fmt::Display; #[derive(Debug)] enum FileState { Open, Closed, } #[derive(Debug)] struct File { name: String, data: Vec<u8>, state: FileState, } impl File { fn new(name: &str) -> File { ...
在json_find.rs文件中,有一个名为SelectorPart的enum,它定义了用于指定JSON路径的各种部分。该enum包含以下几个成员: Wildcard:表示通配符,可以匹配任意键或索引。 StringPart:表示字符串键。例如,对于"name"这样的键,该成员表示它是一个字符串键。 IndexPart:表示数字索引。例如,对于数组中的索引0,该成员表示它是...
name: "TOM".to_string(), age: 32 }; p.name = "TOM2".to_string(); 1. 2. 3. 4. 5. 6. 7. 在rust 的开发中,我们需要明确告诉编译器变量的可变与不可变,习惯了这一点,rust 的学习就进展了一大步。 复制 // 这样表示不可变
在Rust代表中,Result是一个enum枚举对象: 代码语言:javascript 复制 pubenumResult<T,E>{/// Contains the success valueOk(#[stable(feature="rust1",since="1.0.0")]T),/// Contains the error valueErr(#[stable(feature="rust1",since="1.0.0")]E),} ...
枚举类型(Enum Types):表示一个可能取多个值的变量。在 Rust 中,枚举类型使用enum关键字定义,每个可能的取值都是一个不同的枚举成员。 结构体嵌套 一个结构体可以包含任意类型的字段,当然也包括结构体。 在以下这个例子中,Address 结构体包含了 street、city 和 state 三个字段,而 Person 结构体则包含了 name、...
Direction::Right(text) => println!("turn right to {}", text), } } match表达式也可以当作函数表达式来对待,它是可以有返回值的。但有一点需要注意:所有返回值表达式的类型必须一样。 enum Direction { Up(u32), Down(i32), Left(String),
usestd::io;usestd::io::Read;usestd::fs::File;fnread_username_from_file() ->Result<String, io::Error> {letmutf = File::open("hello.txt")?;letmuts =String::new(); f.read_to_string(&muts)?;Ok(s) } 代码中第6行的?操作符会被展开成类似下面的代码: ...