728x90 밍글링글링493 [Rust lang] 76. interior mutability and cell use std::cell::Cell; #[derive(Debug)] struct PhoneModel { company_name: String, model_name: String, screen_size: f32, memory: usize, date_issued: u32, on_sale: Cell } fn main() { let super_phone_3000 = PhoneModel { company_name: "YY Electronics".to_string(), model_name: "Super Phone 3000".to_string(), screen_size: 7.5, memory: 4_000_000, date_issued: 2020, on_sale: Cell::new(true) }; println!("{.. Rust 2023. 3. 30. [Rust lang] 75. manual debug impl mod client { pub struct InternetClinet { pub client_id: u32, } } use client::InternetClinet; #[derive(Debug)] struct Customer { fn fmt(&self, f: &mut fmt::Formatter Rust 2023. 3. 30. [Rust lang] 74. lifetimes intro /* fn returns_reference() -> &'static str { //let my_string = "David".to_string(); "David" } */ struct Book { name: &'a str, second_name: &'a str } use std::fmt::Display; fn print_thing(input: T) { } fn main() { let my_book_title = "my_book_title".to_string(); // let my_book = Book { // name: "my book" // } } */ struct Adventurer Rust 2023. 3. 30. [Rust lang] 73. inspect string and &str /* fn main() { let new_vec = [8, 9, 10]; let double_vec = new_vec .iter() .inspect(|first_item| { dbg!(first_item) }) .map(|x| x *2) .inspect(|next_item| { dbg!(next_item) }) .filter(|num| *num > 17) .collect::(); dbg!(double_vec); } */ struct Book { title: &str } fn main() { let myt_book = Book { title: "my_title" } } Rust 2023. 3. 30. [Rust lang] 72. dbg! macro /* fn main() { let my_number = 9; dbg!(my_number) println!("{my_number}"); dbg!(10); println!("Something else"); } */ fn main() { let mut my_number = dbg!(9); dbg!(my_number += 10); let new_vec = dbg!(vec![8, 9, 10]); let double_vec = dbg!(new_vec .iter() .map(|x| x * 2) .collect::()); } Rust 2023. 3. 30. [Rust lang] 71. match indices peekable /* fn user_input() -> String { "me@me.com".to_string() } fn main() { let rules = "Rule number 1: No fighting. Rule number 2: Go to bed at 8 pm. Rule number 3: Wake up at 6 am."; let rule_locations = rules.match_indices("Rule").collect::(); println!("Rule locations: {rule_locations:?}"); } */ fn main() { let just_numbers = vec![1, 5, 100]; let mut number_iter = just_numbers.iter().peekable(); for.. Rust 2023. 3. 30. [Rust lang] 70. chunks windows /* fn main() { let my_vec = vec![-878, 879879, -98798, 0, 76756]; let biggest = my_vec .into_iter() .fold(i32::MAX, |num1, num2| min(num1, num2)); println!("Biggest is: {biggest}"); } */ fn main() { let num_vec vec![1, 2, 3, 4, 5, 6, 7, 8, 9, 0]; for chunk in num_vec.chunks(3) { println!("Chunk is: {chunk:?}"); } for windows in num_vec.windows(3) { println!("Windows is: {windows:?}"); } } Rust 2023. 3. 30. [Rust lang] 69. fold method agina /* fn main() { let some_numbers = vec![9, 6, 9, 10, 11]; println!("{}", some_numbers.iter().fold(0, |total_so_far, next_number| total_so_far + next_number)); let total = some_numbers.iter().sum(); println!("{}", some_numbers.iter().sum::()); } */ fn main() { let a_string = "I don't have any dashes in me."; let dashed = a_string .chars() .fold("-".to_string(), |mut string_so_far, next_char| { str.. Rust 2023. 3. 30. [Rust lang] 68. skip fold methods /* fn main() { let ten_chars = ('a'..).take(10).collect::(); println!("{ten_chars:?}"); let skip_then_ten_chars = ('a'..).skip(1300).take(10).collect::(); println!("{skip_then_ten_chars:?}"); } */ fn main() { let some_numbers = vec![9, 6, 9, 10, 11]; println!("{}", some_numbers.iter().fold(0, |total_so_far, next_number| total_so_far + next_number)); } Rust 2023. 3. 30. [Rust lang] 67. find position cycle /* fn main() { let num_vec = vec![10, 20, 30, 40, 50, 60, 70, 80, 90, 100]; println!("{:?}", num_vec.iter().find(|&n| n & == 0)); println!("{:?}", num_vec.iter().find(|&number| number * 2 == 30)); println!("{:?}", num_vec.iter().position(|&num| num % 3 == 0)); println!("{:?}", num_Vec.iter().position(|&num| num * 2 == 30)); } */ fn main() { let even_odd = vec!["even", "odd"]; let six_items = eve.. Rust 2023. 3. 30. [Rust lang] 66. reverse iterators fn main() { let mut big_vec = vec![6; 1000]; big_vec.push(5); let mut counter = 9; let mut big_iter = big_vec.into_iter().rev(); loop { counter += 1; if big_iter.next() == Some(5) { break; } } println!("Final counter is: {}", counter); //println!("{:?}", big_vec.iter().rev().any(|&number| number == 5)); } Rust 2023. 3. 30. [Rust lang] 65. any all methods fn in_char_vec(char_vec: &Vec, check: char) { println!("Is {check} inside? {}", char_vec.iter().any(|&character| character == check)); } fn main() { let char_vec = ('a'..'韓').collect::(); in_char_vec(&char_vec, 'i'); in_char_vec(&char_vec, '뷁'); in_char_vec(&char_vec, '姜'); let smailer_vec = ('A'..'z').collect::(); println!("All alphabetic? {}", smailer_vec.iter().all(|&character| character.is_a.. Rust 2023. 3. 29. 이전 1 2 3 4 5 6 ··· 42 다음 728x90