mut — mutable variable (value can be reassigned). const — compile-time constant (value is fixed).
mut:
1let mut sum = 0;2for i in 1..=10 {3 sum += i;4}5println!("{}", sum); // 5567let mut buf = String::new();8buf.push_str("hello");
const:
1const MAX_SIZE: usize = 4096;2const PI: f64 = 3.14159265358979;3const EMPTY: &str = "";45const fn square(x: i32) -> i32 { x * x }6const RESULT: i32 = square(5); // 25
When to use:
const for configuration, buffer sizes, constants.mut when values need to change.const over magic numbers.Common mistakes:
const — required.const — compile error.let mut when const is better.