废话不多说,直接上代码。 enum ShapeEnum {Rectangle(Rectangle),Triangle(Triangle),Circle(Circle)}struct Rectangle { pub width: f32, pub height: f32 }struct Triangle { pub side: f32 }struct Circle { pub radius: f32 }trait Shape {fn perimeter(&self) -> f32;fn area(&self) -> f32;}...
Enum:把多种类型的数据归类到一起。但是这些类型的数据不能在该类型中同时存在。每次只能是一种类型。举个不知道恰当与否的例子,假定一个人只有一个职业。公司运行需要多种不同职业的人,Struct相当于一个公司,集合了不同职业的人。而为了方便管理,公司使用 Enum 对不同职业的人进行归类。 2022-09-16 回复...
traitShape{fnperimeter(&self)->f32;fnarea(&self)->f32; }structRectangle{pubwidth:f32,pubheight:f32}structTriangle{pubside:f32}structCircle{pubradius:f32}implShapeforRectangle{fnperimeter(&self)->f32{self.width *2.0+self.height *2.0}fnarea(&self)->f32{self.width *self.height } }impl...
struct Rectangle { width: u32, height: u32, } impl Rectangle { fn area(&self) -> u32 { self.width * self.height } } fn main() { let rect = Rectangle { width: 10, height: 20, }; println!("Area: {}", rect.area()); } 2、枚举(Enum) 枚举是一种自定义的数据类型,它可以表...
Rust 使用 impl 代码块定义方法,和 struct (以及 enum)代码块是分开的,这和大多数面向对象语言在语法上存在差异。下图是比较: 实现new() 方法简化对象创建操作 创建具有合理默认值的对象通过 new() 方法实现。每个 struct 都可以通过基本语法(指定每个字段的值)进行实例化,这很适合入门,但会导致代码冗长。
enumNUM{ one, two, } fnmain() { leta=NUM::one; letb=NUM::two; println!("{:?}{:}",a,b); } 注意加上#[derive(Debug)]这个说明:这样我们就可以打印出枚举的值了。 enum与struct混合使用 struct_type{ num:NUM, a:u32, b:String, ...
struct 定义、初始化和更新struct struct函数 特殊的struct enum Option Option< T> 枚举与Null值 if ...
1、结构体(Struct) 2、枚举(Enum) 四、其他数据类型 1、切片(Slice) 2、Option类型 3、Result类型 总结 导言 Rust是一种现代的、安全的系统编程语言,注重内存安全和并发性。在Rust中,数据类型是程序中最基本的构建块之一。本篇博客将详细解释Rust的各种数据类型,并提供相关代码示例。
enum是Rust中的一种数据结构,我们可以将三种形状保存到一个enum中。示例代码如下: enum Shape {Rectangle { width: f32, height: f32 },Triangle { side: f32 },Circle { radius: f32 },} 接下来为Shape增加两个方法来分别计算周长和面积。示例代码如下: ...
enum IpAddrKind { V4, V6, } struct IpAddr { kind: IpAddrKind, address: String, } let home = IpAddr { kind: IpAddrKind::V4, address: String::from("127.0.0.1"), }; let loopback = IpAddr { kind: IpAddrKind::V6, address: String::from("::1"), ...