The journey to proficiency in Rust continues. In a previous article, I provided a brief overview of how to get started with Rust by creating a tiny cliche of a program that displays the message, “Hello, World!”.
This article will focus on a specific language aspect, namely constants.
What is a Constant?
A constant is a value that can be bound to a name, similar to a variable. By its nature, the value cannot change.
What is the Purpose of a Constant?
Constants are useful in any programming language because they help you avoid so-called “magic values”. A magic value is something that is hardcoded into the code base…likely in a million different locations, by the time all is said and done, which makes it impossible (or at least nasty) to properly update and change the code.
Instead of hardcoded values, a handful of constants declared upfront make it clear and easy to update them later, should their values need to change.
Here’s how to declare the speed of light (in metric) as a constant in Rust:
const SPEED_OF_LIGHT: u32 = 299792458
First, the const keyword is used, followed by a name. The convention is all caps. Next, the constant must receive a type annotation, I’ve used a 32-bit unsigned integer type. The last step is to bind the value to the new constant with the = operator.
Scope of Validity
Constants can be declared in any scope, including the global scope, as such, they can be made widely available.
As one might expect, constants are immutable by default. Their values can’t be changed and you can’t use the mut keyword with them. A key concept in Rust is the notion that variables are immutable by default. One must expressly choose to make them mutable (changeable) by adding the keyword mut to the variable binding. Mut does not work with values that are constant.