跳到主要内容

Rust 结构体

Rust 元组组合了多个类型,但是只能依赖于这些字段的顺序来访问,所以不够直观。

阐述

结构体是多个字段的集合,每个字段有一个名称和类型声明。

结构体初始化时需要提供各个字段的值;可以通过 . 操作符访问字段的值,也可以修改它们。

结构体可以通过更新语法来创建新的结构体实例。

元组结构体

如果希望有一个整体名称,又不关心里面字段的名称,可以省略字段的名称。

单元结构体

单元结构体是没有字段的结构体,可以用于只关心行为不关心内容的时候。

实例

一个用户类型的定义:

struct User {
active: bool,
username: String,
email: String,
sign_in_count: u64,
}
let user2 = User {
email: String::from("[email protected]"),
..user1
};

元组结构体:

struct Color(i32, i32, i32);
struct Point(i32, i32, i32);

let black = Color(0, 0, 0);
let origin = Point(0, 0, 0);

性质

调试输出

结构体可以通过 #[derive(Debug)] 的方式来方便地调试输出。

##[derive(Debug)]
struct Rectangle {
width: u32,
height: u32,
}

fn main() {
let rect1 = Rectangle {
width: 30,
height: 50,
};

println!("rect1 is {:?}", rect1);
dbg!(&rect1);
}

相关内容

参考文献