-
Notifications
You must be signed in to change notification settings - Fork 0
/
046-structs.rs
81 lines (72 loc) · 1.54 KB
/
046-structs.rs
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
enum Soort {
Mens,
Hond,
Kat,
}
struct Bewoner {
mens: bool,
naam: String,
woning: u32,
soort: Soort,
}
impl Bewoner {
fn voeren(&self) -> bool {
!self.mens
}
}
fn main() {
let mut bewoner: [Bewoner; 4] = [
Bewoner {
mens: true,
naam: String::from("Henk"),
woning: 2,
soort: Soort::Mens,
},
Bewoner {
mens: true,
naam: String::new(),
woning: 0,
soort: Soort::Mens,
},
Bewoner {
mens: true,
naam: String::new(),
woning: 0,
soort: Soort::Mens,
},
Bewoner {
mens: true,
naam: String::new(),
woning: 0,
soort: Soort::Mens,
},
];
bewoner[1] = Bewoner {
mens: true,
naam: String::from("Marie"),
woning: 2,
soort: Soort::Mens,
};
bewoner[2] = nieuwe_kat("Poekie".to_string(), 2);
bewoner[3] = nieuwe_kat("Bello".to_string(), 2);
bewoner[3].soort = Soort::Hond;
println!();
for bewoner in &bewoner {
print!(
"bewoner: naam: {}, woning: {} ",
bewoner.naam, bewoner.woning
);
println!(
"moet {} gevoerd worden!",
if bewoner.voeren() { "WEL" } else { "NIET" }
);
}
}
fn nieuwe_kat(naam: String, woning: u32) -> Bewoner {
Bewoner {
mens: false,
naam,
woning,
soort: Soort::Kat,
}
}