字段初始化简写(field init shorthand):在字段名与变量名相同时,不需要使用 字段名: 变量名
的形式,而直接使用 字段名
的形式。
示例程序:
struct User {
username: String,
email: String,
sign_in_count: u64,
active: bool,
}
fn build_user(username: String, email: String) -> User {
User {
username,
email,
active: true,
sign_in_count: 1,
}
}
fn main() {
let user1 = build_user(String::from("yuyoubei"),
String::from("yuyoubei@qq.com"));
println!("{}, {}, {}, {}", user1.username, user1.email, user1.active, user1.sign_in_count); // 输出 yuyoubei, yuyoubei@qq.com, true, 1
}
我们希望 build_user 函数的 email 参数来初始化这个实例的 email 字段。由于字段 email 与参数 email 拥有相同的名字,所以我们不用书写完整的 email: email
语句,只保留 email
即可。