let _string: String = String::from("hello world"); println!("_string 的长度: {}", _string.len()); println!("_string 的容量: {}", _string.capacity()); } 字符串切片类型和字符串类型类似,对于字符串而言,切片就是对 String 类型中某一部分的引用: let _s: String = String::from("Hell...
2、数组(Array) 3、字符串(String) 三、自定义数据类型 1、结构体(Struct) 2、枚举(Enum) 四、其他数据类型 1、切片(Slice) 2、Option类型 3、Result类型 总结 导言 Rust是一种现代的、安全的系统编程语言,注重内存安全和并发性。在Rust中,数据类型是程序中最基本的构建块之一。本篇博客将详细解释Rust的各种...
这是由EnumString继承创建的代码示例。 #[derive(EnumString)]enumCars{BMW,Volvo{range:usize},#[strum(serialize="Toyota",serialize="b")]Toyota(usize),#[strum(disabled="true")]Fiat,} 请注意,FromStr的默认实现仅匹配变体的名称。Display和ToString都返回指定的enum变体。这使你能够将单元样式变体从enum转...
address: String::from("::1"), }; 但,rust 可以简化类型的定义: enum IpAddr { V4(String), V6(String), } let home = IpAddr::V4(String::from("127.0.0.1")); let loopback = IpAddr::V6(String::from("::1")); Where structs give you a way of grouping together related fields and ...
enumResult{Ok(i32),Err(String),}fnmain(){letsuccess=Result::Ok(66);letfailure=Result::Err(String::from("failed"));} 在上面的示例代码中,Result::Ok有一个i32类型的关联值,Result::Err有一个String类型的关联值。 另外,我们还可以为枚举中的属性命名,类似于结构体的语法。但请特别注意:枚举并不能...
fnmain(){letmessage:String=String::from("Hello, Rust!");println!("Message: {}",message);} 三、自定义数据类型 Rust允许用户自定义数据类型,包括结构体和枚举。 1、结构体(Struct) 结构体是一种自定义的数据类型,它可以将多个不同类型的值组合在一起形成一个新的类型。结构体使用struct关键字定义,并可...
let name: Option<String> = Some("Fred".to_string()); } Option用于某些地方可能存在有值或没值的情况。Option 及成员已经被自动包含,所以我们不需要Option::Some(xxx)这样来使用。 match 匹配 对于enum类型的值,我们不能直接比较,看下面的代码,是无法编译通过的。
enum Gender { Boy(String,i32), Girl(String,i32), } 附加两个数据值,一个String,一个i32 let boy = Gender::Boy(String::from("男孩"), 1); 也可以将结构体作为枚举数据类型。在枚举中也可以定义譬如结构体的方法。 impl Gender { fn getHobby(&self){ ...
b:String::from("abcd"), }; } 我们来访问这个结构体实例变量: println!("{:#?}{:#?}",sb1,sb2); 别忘了在结构体前面加上#[derive(Debug)]标识符。 enum类型绑定数据类型 枚举的独特之处: enumEx1{ Name(String), Age(u32), } 我们创建了一个枚举,这个枚举的字段绑定了两个值,分别是String的...
enumIpAddr{V4(String),V6(String),}lethome=IpAddr::V4(String::from("127.0.0.1"));letloopback=IpAddr::V6(String::from("::1")); 我们直接将数据附加到枚举的每个成员上,这样就不需要一个额外的结构体了。这里也很容易看出枚举工作的另一个细节:每一个我们定义的枚举成员的名字也变成了一个构建枚举...