结构体
Rust 中的结构体是用来声明的,不能直接创建实例。
使用 impl 关键字来实现结构体的动作(在里面写结构体的方法),可同时结合泛型使用。
rust
struct Site {
domain: String, // 每个字段必须声明类型
name: String, // 字段定义后面使用逗号分隔,而不是分号
is_active: bool
}
let knots = Site {
domain: String::from("knots.l0u0l.com"),
name: "Knots".to_string(),
is_active: true
};若欲实例化的结构体,某字段与现有变量一致,触发简写:
rust
let domain: String::from("knots.l0u0l.com");
let name: "Knots".to_string();
let knots = Site {
domain,
name,
is_active: true
};元组结构体
定义一种简单又常用的类型。
rust
struct Color(u8, u8, u8);
struct Point(f64, f64);
let black = Color(0, 0, 0);
let origin = Point(0.0, 0.0);元组结构体实例(对象)的使用方式和元组一样,通过 .下标 来进行访问:
rust
fn main() {
struct Color(u8, u8, u8);
struct Point(f64, f64);
let black = Color(0, 0, 0);
let origin = Point(0.0, 0.0);
println!("black = ({}, {}, {})", black.0, black.1, black.2);
println!("origin = ({}, {})", origin.0, origin.1);
}