728x90 밍글링글링493 [Rust lang] 64. And or for option /* fn main() { let one = false; let two = false; let three = false; let four = true; println!("{}", one || three); println!("{}", one || two || three || four); } */ fn main() { let first_try = vec![Some("success!"), None, Some("success!"), Some("success!"), None]; let second_try = vec![None, Some("success!"), Some("success!"), Some("success!"), Some("success!")]; let third_try = vec![Some("succe.. Rust 2023. 3. 29. [Rust lang] 63. map and than for option fn main() { let some_output = Some(vec![8,9,10]); let first = some_output. .clone() .map(|some_vec| some_vec.iter().map(|num| num + 1).collect::()); let second = some_output.and_then(|some_vec| match some_vec.len() { 0 => None, 1 => Some(vec![some_vec[0]]), _ => Some(some_vec) }).flattern(); println!("{first:?}"); println!("{second:?}"); } Rust 2023. 3. 29. [Rust lang] 62. Ok else /* fn main() { let user_input = vec!["8.9", "Nine point nine five", "8.0", "7.6", "eleventy-twelve"]; let actual_numbers = user_input .into_iter() .filter_map(|input| input.parse().ok()) .collect::(); println!("{actual_numbers:?"); } */ struct Company { name: String, ceo: Option } impl Company { fn new(name: &str, ceo: &str) -> Self { let ceo = match ceo { "" => None, ceo => Some(ceo.to_string().. Rust 2023. 3. 29. [Rust lang] 61. filter map /* fn main() { let months = vec![ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ]; let filetered_months = months .into_iter() .filter(|month| month.len()) < 5) .filter(|monnnth| monnnth.contains("u")) .collect::(); println!("{filetered_months}"); } */ struct Company { name: String, ceo: Option } impl Company { fn new(name.. Rust 2023. 3. 29. [Rust lang] 60. char methods fn main() { let big_string = "Hello there, I am a &str"; // big_string.chars().for_each(|c| println!("{c}")); // println!("big_string has {} characters", big_string.chars().count()); // big_string.char_indices().for_each(|(index, charrrrr)| { // println!("At index {index} is the char {charrrrr}"); // }); let my_vec = vec![8, 9, 10]; my_vec.iter().for_each(|_| println!("We don't care about the nu.. Rust 2023. 3. 29. [Rust lang] 59. zipping iterators use std::collections::HashMap; fn main() { let some_numbers = vec![0, 1, 2, 3, 4, 5]; let some_words = vec!["zero", "one", "two", "three", "four", "five"]; let number_word_hashmap: HashMap = some_numbers .into_iter() .zip(some_words.into_iter()) .collect(); //.collect::(); number_word_hashmap.iter().for_each(|stuff| { println!("{stuff:?}"); }) } Rust 2023. 3. 29. [Rust lang] 58. map and for each fn main() { let num_vec = vev![2, 4, 6]; let double_vec = num_vec .iter() .map(|number| number * 2) .collect::(); println!("{double_vec:?"); num_vec .iter() .enumerate() .for_each(|(index, number)| { println!("The number at index {index} is {number}"); }); } fn main() { let num_vec = vec![2, 4, 6]; let new_thing = num_vec .iter() .enumerate() .map(|(index, number)| { println!("The number at inde.. Rust 2023. 3. 29. [Rust lang] 57. abstractions fn main() { /* let my_number = 9; let anoymous_function = || println("I am a function"); let closure = || println!("{my_number}"); .iter().map().filter().inspect().collect() */ let my_vec = vec![8, 9, 10, 9]; let fourth = my_vec.get(3).unwrap_or_else(|| { if my_vec.get(0).is_some() { &my_vec[0] } else { &0 } }); println!("{fourth}"); } Rust 2023. 3. 29. [Rust lang] 56. closures .iter().map(|item| { let my_number = 7; item + my_number }) .collect() fn main() { /* let my_number = 10; let my_closure = |x: i32| println!("{}", x + my_number); my_closure(9); */ let my_closure = || { let my_number = ?; let other_number = 10; println!("The two numbers are {my_number} and {other_number}"); my_number + other_number }; let my_var = my_closure(); println!("{my_var}"); } Rust 2023. 3. 29. [Rust lang] 55. iterator fn main() { let vector1 = vec![1, 2, 3]; let vector1_a = vector1.iter().map(|x| x + 1).collect::(); let vector1_b: Vec = vector1.into_iter().map(|x| x * 10).collect(); let mut vector2 = vec![10, 20, 30]; vector2.iter_mut().for_each(|num| *num += 100); println!("{vector1_a:?}"); println!("{vector2:?}"); println!("{:?}", vector1_b); println!("{vector1:?}"); // .into_iter() 이 후 소멸됨. } fn main() { l.. Rust 2023. 3. 29. [Rust lang] 54. chaining methods fn main() { //1 let mut new_vec = Vec::new(); let mut counter = 1; while counter < 11 { new_vec.push(counter); counter += 1; } println!("{new_vec:?}"); //2 let new_vec = (1..=10).collect::(); println!("{new_vec:?}"); //3 let my_vec = vec![1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; let new_vec = my_vec .into_iter() .skip(1) .skip(1) .skip(3) .take(4) .collect::(); println!("{new_vec:?}"); } Rust 2023. 3. 29. [Rust lang] 53. the asref trait use std::fmt::Display; fn print_it(input: T) where T: Display + AsRef { println!("{input}"); } fn main() { // print_it(9); >> error print_it("Please print me"); print_it(String::from("Please print me")); } Rust 2023. 3. 29. 이전 1 2 3 4 5 6 7 ··· 42 다음 728x90