====== Sunday, May 15th 2022 ====== ==== k ===== have you play this game? [[https://store.steampowered.com/app/1154810/Going_Under/|this]]. its pretty funny. ===== Collections ===== Collections are like arrays or tuples whose size do not need to be known at compile time. The two types are - Vectors - HashMap (like Dictionaries in c#) ==== Vectors ==== Vectors are resizable arrays whos length do not need to be known at compile time but the size of its type needs to be known. You can init a vector with the vec! macro. eg let x = vec![20,50,20]; You can access a certain element like dish rish **this*** println!("{}",x[0]); You can iterate through every value like dish rish **this*** ((haha, I'm so quirky)) [[https://doc.rust-lang.org/stable/rust-by-example/std/vec.html|stolen from the rust by example book]] // `Vector`s can be easily iterated over println!("Contents of xs:"); for v in x.iter() { println!("> {}", x); } // A `Vector` can also be iterated over while the iteration // count is enumerated in a separate variable (`i`) for (i, v) in x.iter().enumerate() { println!("In position {} we have value {}", i, x); } // Thanks to `iter_mut`, mutable `Vector`s can also be iterated // over in a way that allows modifying each value for v in xs.iter_mut() { *v *= 3; } println!("Updated vector: {:?}", xs); ==== HashMap ==== Like dictionaries these use key value pairs. To make one let mut name_and_age = HashMap::new(); name_and_age.insert("Gassica",22); name_and_age.insert("Alex",12); name_and_age.get("Alex") //ACCESSING THE VALUE You can also insert "entry" name_and_age.entry(String::from("thomas")).or_insert(20); //Insert only if unique which is bascially insert if unique. The aims to finish this by may atleast. (given I spend only a little time a week on it) will prollly do some exercizes thru the week without typing my noon-sense.((but typing this is fun fun fun fun)). {{:devlogs:rustlings_excersizes.png?direct&400|}}