Here are the basics I covered:
Basics
- Variable Declaration:
let var_name = value; - Immutable Binding:
let x = 5; - Mutable Binding:
let mut y = 10; - Constants:
const MAX_POINTS: u32 = 100_000; - Printing:
println!("Hello, world!");
Data Types
- Integer:
i32,u32,i64,u64 - Floating Point:
f32,f64 - Boolean:
bool - Character:
char - Tuple:
(i32, f64, u8) - Array:
[i32; 5](fixed size) - Slice:
&[i32](reference to a contiguous sequence)
Control Flow
- if expression:
if condition { } else { } - loop:
loop { } - while loop:
while condition { } - for loop:
for item in iterable { } - match:
match value { pattern => { /* code */ } }
Functions
- Declaration:
fn function_name(param: Type) -> ReturnType { } - Calling:
function_name(arg)
Ownership
- Ownership Rules: Each value in Rust has a variable that’s called its owner.
- Borrowing:
&(immutable) and&mut(mutable) - Lifetimes: Ensures that borrowed references are valid.
Error Handling
- Result:
Result<T, E>for functions that might fail. - panic!: Macro to cause the program to crash and display a message.
Structs
- Declaration:
struct MyStruct { field1: Type, field2: Type } - Instance:
let instance = MyStruct { field1: value1, field2: value2 };
Enums
- Declaration:
enum MyEnum { Variant1, Variant2 } - Instance:
let instance = MyEnum::Variant1;
Traits
- Declaration:
trait MyTrait { /* methods */ } - Implementing:
impl MyTrait for Type { /* method implementations */ }
Modules
- Declaration:
mod module_name { /* module contents */ } - Using:
use module_name::item_name;
Unsafe Rust
- Unsafe Block:
unsafe { /* unsafe code */ }
Useful Tools
- Cargo: Rust’s package manager and build system.
- Rustfmt: Code formatter.
- Clippy: Linter for Rust code.