Rust Data Types
Rust Data Types
Data types define the kind of value a variable can store.
Rust is a statically typed language, which means the compiler knows the type of every variable at compile time.
let age = 20;
let price = 99.99;
let is_active = true;
Rust mainly provides two categories of data types:
- Scalar Data Types
- Compound Data Types
Video Explanation

1. Scalar Data Types
Scalar data types store a single value.
Rust provides four main scalar types:
- Integer
- Floating Point
- Boolean
- Character
Integer Types
Integer types are used to store whole numbers.
Rust supports both signed and unsigned integers.
- Signed integers can store positive and negative values.
- Unsigned integers store only positive values.
| Type | Size | Example |
|---|---|---|
| i8 | 8-bit | -10 |
| u8 | 8-bit | 10 |
| i16 | 16-bit | -200 |
| u16 | 16-bit | 200 |
| i32 | 32-bit | -500 |
| u32 | 32-bit | 500 |
| i64 | 64-bit | -9000 |
| u64 | 64-bit | 9000 |
| i128 | 128-bit | -100000 |
| u128 | 128-bit | 100000 |
| isize | arch-dependent | -1 |
| usize | arch-dependent | 1 |
i32 is the default integer type in Rust.
Example
fn main() {
let age: u8 = 20;
let temperature: i32 = -15;
println!("Age: {}", age);
println!("Temperature: {}", temperature);
}
Output
Age: 20
Temperature: -15
Floating Point Types
Floating point types are used to store decimal values.
Rust provides two floating point types:
| Type | Size | Example |
|---|---|---|
| f32 | 32-bit | 3.14 |
| f64 | 64-bit | 99.99 |
f64 is the default floating point type.
Example
fn main() {
let pi: f32 = 3.14;
let price: f64 = 99.99;
println!("Pi: {}", pi);
println!("Price: {}", price);
}
Output
Pi: 3.14
Price: 99.99
Boolean Type
Boolean type stores only two values:
truefalse
Booleans are mostly used in conditions and decision making.
Example
fn main() {
let is_rust_easy: bool = true;
let is_sky_green: bool = false;
println!("{}", is_rust_easy);
println!("{}", is_sky_green);
}
Output
true
false
Character Type
The char type stores a single character.
Character values are written inside single quotes.
Example
fn main() {
let grade: char = 'A';
let symbol: char = '#';
println!("{}", grade);
println!("{}", symbol);
}
Output
A
#
2. Compound Data Types
Compound data types can store multiple values together.
Rust mainly provides:
- Tuples
- Arrays
Tuples
A tuple can store multiple values of different data types.
Tuple values are written inside parentheses.
Example
fn main() {
let student = ("Hemlata", 21, 8.5);
println!("Name: {}", student.0);
println!("Age: {}", student.1);
println!("CGPA: {}", student.2);
}
Output
Name: Hemlata
Age: 21
CGPA: 8.5
Tuple Destructuring
Rust allows unpacking tuple values into variables.
fn main() {
let person = ("Alice", 25);
let (name, age) = person;
println!("Name: {}", name);
println!("Age: {}", age);
}
Arrays
Arrays store multiple values of the same data type.
Arrays in Rust have fixed size.
Syntax
let numbers = [10, 20, 30, 40];
Example
fn main() {
let numbers = [10, 20, 30, 40, 50];
println!("First Element: {}", numbers[0]);
println!("Second Element: {}", numbers[1]);
}
Output
First Element: 10
Second Element: 20
Array with Data Type
fn main() {
let marks: [i32; 5] = [90, 85, 88, 92, 95];
// Use the debug formatter {:?} to print the array
println!("{:?}", marks);
}
String Slice (&str)
String slices are immutable string references.
They are usually used for fixed text.
Example
fn main() {
let language: &str = "Rust";
println!("{}", language);
}
Output
Rust
String
String is a growable and mutable string type.
Example
fn main() {
let mut name = String::from("Rust");
name.push_str(" Language");
println!("{}", name);
}
Output
Rust Language
Type Inference
Rust can automatically detect the data type of variables.
This feature is called type inference.
Example
fn main() {
let number = 100;
let pi = 3.14;
let status = true;
println!("{}", number);
println!("{}", pi);
println!("{}", status);
}
In this example:
numberbecomesi32pibecomesf64statusbecomesbool
Type Casting
Rust does not automatically convert one data type into another.
We use the as keyword for type conversion.
Example
fn main() {
let num1: i32 = 10;
let num2: f64 = num1 as f64;
println!("{}", num1);
println!("{}", num2);
}
Output
10
10
Constants in Rust
Constants are values that cannot be changed during program execution.
Constants are declared using the const keyword.
Example
const PI: f64 = 3.14159;
fn main() {
println!("{}", PI);
}
Mutability in Rust
Variables are immutable by default in Rust.
Use the mut keyword to make variables mutable.
Example
fn main() {
let mut score = 50;
score = 80;
println!("{}", score);
}
Output
80
Summary
Rust provides different data types to store different kinds of values safely and efficiently.
Scalar Data Types
- Integer
- Floating Point
- Boolean
- Character
Compound Data Types
- Tuples
- Arrays
Rust also supports:
- Strings
- Type Inference
- Type Casting
- Constants
- Mutable Variables
These features make Rust powerful, safe, and fast for system programming and application development.
Done with this topic? Mark it as complete to track your progress.
Was this page helpful?
Discuss this page
Have a question or spot something confusing in "Rust Data Types"? Ask below. Backed by GitHub Discussions—maintainers receive system notifications directly.