⭐️ In Rust variables are immutable by default, so we call them Variable bindings. To make them mutable, the
mut keyword is used.
⭐️ Rust is a statically typed language; it checks data types at compile-time. But it doesn’t require you to actually type it when declaring variable bindings. In that case, the compiler checks the usage and sets a better data type for it. But for constants and statics, you must annotate the type. Types come after a colon(:)
let a = true; let b: bool = true; let (x, y) = (1, 2); let mut z = 5; z = 6;
const N: i32 = 5;
static N: i32 = 5;
The let keyword is used in binding expressions. We can bind a name to a value or a function. Also, because the left-hand side of a let expression is a ‘pattern’, you can bind multiple names to a set of values or function values.
The const keyword is used to define constants. It lives for the entire lifetime of a program but has no fixed address in the memory. The static keyword is used to define a ‘global variable’ type facility. There is only one instance for each value, and it’s at a fixed location in memory.
💡 Always use const, instead of static. It’s pretty rare that you actually want a memory location associated with your constant, and using a const allows for optimizations like constant propagation not only in your crate but also in downstream crates.
💡 Usually, statics are placed at the top of the code file, outside the functions.