Struct
struct User{
username: String,
email: String,
sign_in_count: u64,
active: bool,
}
一旦struct的实例是可变的,那么实例中所有的字段都是可变的
struct 可以作为函数的返回值
Struct 可以作为函数的返回值
fn build_user(email: String, username: String) -> User{
User{
email,
username,
active: true,
sign_in_count: 1,
}
}
Struct更新语法
let user_2 = User{
username: String::from("Darton"),
email: String::from("example@com"),
..user_1
};
Tuple Struct
可以定义一个元组结构体
- 想给tuple起名,让他不同于其他tuple,但又不需要给每个元素起名
struct Color(i32, i32, i32);
struct Point(i32, i32, i32);
let black = Color(0, 0, 0);
let origin = Point(0, 0, 0);
- black 和 origin 是不同的类型,因为他们的元素不同。