声明方式
struct User {
username: String,
email: String,
sign_in_count: u64,
active: bool,
}
struct Rectangle {
width: u32,
length: u32,
}
实现
let user1 = User {
email: String::from(“qq.com”),
username: String::from(“zhang”),
active: true,
sign_in_count: 556,
};
let rect = Rectangle {
width: 30,
length: 50,
};
应用
fn area_3(rect: &Rectangle) -> u32 {
rect.width * rect.length
}
完整代码
struct User {
username: String,
email: String,
sign_in_count: u64,
active: bool,
}
#[derive(Debug)]
struct Rectangle {
width: u32,
length: u32,
}
fn main() {
let user1 = User {
email: String::from(“qq.com”),
username: String::from(“zhang”),
active: true,
sign_in_count: 556,
};
let w = 30;
let l = 50;
println!("{}", area(w, l));
let rec = (30, 50);
println!("{}", area_2(rec));
let rect = Rectangle {
width: 30,
length: 50,
};
println!("{}", area_3(&rect));
println!("{:#?}", rect);
}
fn build_user(email: String, username: String) -> User {
User {
email: email,
username: username,
active: true,
sign_in_count: 0,
}
}
fn area(width: u32, length: u32) -> u32 {
width * length
}
fn area_2(dim: (u32, u32)) -> u32 {
dim.0 * dim.1
}
fn area_3(rect: &Rectangle) -> u32 {
rect.width * rect.length
}