mirror of
https://github.com/LukasKalbertodt/programmieren-in-rust.git
synced 2024-11-18 02:48:58 +01:00
Add code from the lecture
This commit is contained in:
parent
af781344ee
commit
90a8ca2587
27
materialien/comma-list-iter.rs
Executable file
27
materialien/comma-list-iter.rs
Executable file
@ -0,0 +1,27 @@
|
|||||||
|
use std::str::FromStr;
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
let res = parse_list("1, 2, 3; , ,7, 8,9; 6;3,5;");
|
||||||
|
println!("{:#?}", res);
|
||||||
|
let res = parse_list("1, peter, 3, 4");
|
||||||
|
println!("{:#?}", res);
|
||||||
|
}
|
||||||
|
|
||||||
|
// "1, 2, 3; 7, 8,9; 6;3,5;"
|
||||||
|
fn parse_list(input: &str)
|
||||||
|
-> Result<Vec<Vec<u32>>, <u32 as FromStr>::Err>
|
||||||
|
{
|
||||||
|
// The following code could be expressed even shorter, but this is the
|
||||||
|
// exact code as shown in the lecture.
|
||||||
|
input.split(';')
|
||||||
|
.map(|s| s.trim())
|
||||||
|
.filter(|s| !s.is_empty())
|
||||||
|
.map(|s| {
|
||||||
|
s.split(',')
|
||||||
|
.map(|s| s.trim())
|
||||||
|
.filter(|s| !s.is_empty())
|
||||||
|
.map(|s| s.parse())
|
||||||
|
.collect()
|
||||||
|
})
|
||||||
|
.collect()
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user