1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
fn main() {
//1.定义结构体
struct User {
name: String,
count: String,
nonce: u64,
active: bool,
}
//2.创建结构体实例
let xiaoming = User {
name: String::from("Xiaoming"),
count: String::from("80001000"),
nonce: 10000,
active: true,
};
//3.修改结构体字段
let mut xiaohuang = User {
name: String::from("Xiaohuang"),
count: String::from("80001000"),
nonce: 10000,
active: true,
};
xiaohuang.nonce = 20000;
//4.参数名字和字段名字同名的简写方法
let name = String::from("xiaoxiao");
let count = String::from("58398439");
let nonce = 20000;
let active = false;

/*let user1 = User {
name: name,
count: count,
nonce: nonce,
active: active,
};*/
let user1 = User {
name,
count,
nonce,
active,
};
//5.从其它结构体创建实例
let user2 = User {
//name: user1.name,
name = String::from("user2"),
..user1
};
println!("name = {} ",user2.name);
//6.元组结构体
//字段没有名字,使用圆括号
struct Point(i32,i32);

let a = Point(1,10);
let b = Point(3,11);

println!("a.x = {}, a.y = {}",a.0,a.1);
//7.没有任何字段的类单元结构体
struct A{};
//8.打印结构体
#[derive(Debug)] //或者自行实现display特征
println!("xiaoming = {:?}",xiaoming);
println!("xiaoming = {:#?}",xiaoming);
}