In computer programming, we use variables to store data. For example,
let x = 1;
Here, x is the name of the variable which stores the value 1
.
We can think of variables as containers that hold information.
Rust Variable Declaration
We use the let
keyword to declare a variable in Rust.
let age = 31;
Here, we have created a variable named age with value 31
.
Example: Rust Variables
fn main() {
// variable to store integer value
let age = 31;
println!("Age: {}", age);
// variable to store floating-point value
let salary = 342523.23;
println!("Salary: {}", salary);
// variable to store string
let name = "Jackie";
println!("Name: {}", name);
}
Output
Age: 31 Salary: 342523.23 Name: Jackie
In the above example, we have created three different variables:
- age - to store an integer value
- salary - to store a floating-point data
- name - to store a string
Notice that we have used the println!
macro to print the variables.
println!("Age: {}", age);
To learn more about println!
, visit Rust Print Output.
Change Value of a Variable
By default, Rust variables are immutable, which means we cannot change the value of a variable once it is defined. Let's see an example,
fn main() {
// declare a variable with value 1
let x = 1;
println!("x = {}", x);
// change the value of variable x
x = 2;
println!("x = {}", x);
}
When we run this code, we will get an error. This is because we are trying to change the value of the x variable from 1
to 2
.
error[E0384]: cannot assign twice to immutable variable `x`
--> main.rs:7:5
|
3 | let x = 1;
| -
| |
| first assignment to `x`
| help: consider making this binding mutable: `mut x`
...
7 | x = 2;
| ^^^^^ cannot assign twice to immutable variable
To solve this problem, Rust allows us to create mutable variables.
Mutability in Rust
We use the mut
keyword before the variable name to create a mutable variable. For example,
let mut x = 1;
Here, x is a mutable variable. Now we can change the value of x.
Example: Mutable Variables
fn main() {
// declare a mutable variable with value 1
let mut x = 1;
println!("Value of x = {}", x);
// change the value of variable x
x = 2;
println!("Updated value of x = {}", x);
}
Output
Value of x = 1 Updated value of x = 2
Here, you can see we have successfully changed the value of the x variable. This is because we have defined the x variable using the mut
keyword.
Rules for Naming Variables in Rust
We can use any names as variable names, however, there are some rules we should follow:
1. Rust is a case sensitive language. Hence, lowercase variables and uppercase variables are different. For example,
age is different from AGE
name is different from Name
2. Variables must start with either a letter or an underscore. For example,
let age = 31; // valid and good practice
let _age = 31; // valid variable
let 1age = 31; // inavlid variable
3. Variable names can only contain letters, digits and an underscore character. For example,
let age1 = 31; // valid variable
let age_num = 31; // valid variable
let s@lary = 52352; // invalid variable
4. Use underscore if we need to use two words as variable names. For example,
let first name = "Jack"; // invalid variable
let first_name = "Jack"; // valid variable
let first-name = "Jack"; // invalid variable
Note: Always try to give meaningful names to your variables. For example, name
, age
, number
are better names than n
, ag
, nm
.
Rust Constants
A constant is a special type of variable whose value cannot be changed. We use the const keyword to create constants in Rust. For example,
fn main() {
// declare a float constant
const PI: f32 = 3.14;
println!("Value of PI = {}", PI);
}
Output:
Value of PI = 3.14
In the above example, we have declared a constant PI with value 3.14
. Now, the value of PI cannot be changed throughout the program.
Let's see what happens if we try to change the value of a constant.
fn main() {
// declare a constant
const PI:f32 = 3.14;
println!("Initial Value of PI: {}", PI);
// change value of PI
PI = 535.23;
println!("Update Value of PI: {}", PI);
}
When we run this code, we will get an error because PI is a constant.
error[E0070]: invalid left-hand side of assignment
--> main.rs:7:8
|
7 | PI = 535.23;
| -- ^
| |
| cannot assign to this expression
Note: As per Rust's naming convention, we use uppercase for the name of constants.