Table of contents
Quick reference for common Rust gotchas and patterns.
Comparison Operators
Rust keeps it simple:
x == y // Equal
x != y // Not equal
x < y // Less than
x > y // Greater than
No <>, ===, or !== like other languages. Just == and !=.
Iterator vs Collection
Know what's iterable:
3..10 // β
Iterator
["a", "b"] // β Array (use .iter())
vec!["x", "y"] // β Vec (use .iter() or .into_iter())
iter() vs into_iter()
let arr = ["a", "b", "c"];
arr.iter() // &&str (reference to reference)
arr.into_iter() // &str (cleaner, preferred)
Use into_iter() for arrays - one less reference level.
Unicode from Char
let c = 'π¦';
let code = c as u32; // 129408
println!("U+{:04X}", code); // U+1F980
What Has .sort()?
Only mutable slices:
let mut vec = vec![3, 1, 4];
vec.sort(); // β
let mut arr = [3, 1, 4];
arr.sort(); // β
// Iterators need .collect() first
let sorted: Vec<_> = iter.collect().sort(); // β
let mut sorted: Vec<_> = iter.collect(); // β
sorted.sort();
into() vs into_iter()
Different purposes:
"hello".into() // Type conversion (&str -> String)
vec![1,2,3].into_iter() // Creates iterator
Remember: into() converts types, into_iter() makes iterators.
Back to blog
Share::