HiSEN

关于学习 Rust

零、背景

过年期间,看到 github 关注的人的动态当中
有人 star 了这个项目 Rust语言圣经
这些年也听说过 Rust,一直没有特意去了解
当我看到大佬也关注了这个课程的时候
感觉应该是一个不错的学习资料

前面介绍学习的好处让我心动了
就跟着学习了前面 4 节课
目前感觉良好
有空继续学

不得不说,环境搭建特别方便!

一、实践

1.1 code

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
fn greet_world(){
let southern_germany = "Grüß Gott!";
let chinese = "世界,你好";
let english = "World, hello";
let regions = [southern_germany, chinese, english];
for region in regions.iter() {
println!("{}", &region);
}
}

fn more_than_hello(){
let penguin_data = "\
common name,length (cm)
Little penguin,33
Yellow-eyed penguin,65
Fiordland penguin,60
Invalid,data
";

let records = penguin_data.lines();

for (i, record) in records.enumerate() {
if i == 0 || record.trim().len() == 0 {
continue;
}

let fields: Vec<_> = record
.split(",")
.map(|field| field.trim())
.collect();

if cfg!(debug_assertions) {
eprintln!("debug: {:?} -> {:?}", record, fields);
}

let name = fields[0];
if let Ok(length) = fields[1].parse::<f32>() {
println!("{}, {}cm", name, length);
}
}
}

fn main() {
greet_world();
more_than_hello();
}

1.2 out put

1
2
3
4
5
6
7
8
9
$ cargo run --release
Finished release [optimized] target(s) in 0.02s
Running `target/release/world_hello`
Grüß Gott!
世界,你好
World, hello
Little penguin, 33cm
Yellow-eyed penguin, 65cm
Fiordland penguin, 60cm

二、资源