const and static

There are two types that don't use let to declare: const and static. Also, Rust won't use type inference: you need to write the type for them. These are for variables that don't change (const means constant). The difference is that:

  • const is a value that does not change,
  • static is a value that does not change and has a fixed memory location.

So they are almost the same. Rust programmers almost always use const.

You write them with ALL CAPITAL LETTERS, and usually outside of main so that they can live for the whole program.

Two examples are: const NUMBER_OF_MONTHS: u32 = 12; and static SEASONS: [&str; 4] = ["Spring", "Summer", "Fall", "Winter"];