๐ Scenario: You are learning Rust programming and want to understand how to use scalar data types. Scalars are the simplest types that hold a single value, like numbers and characters.
๐ฏ Goal: Build a small Rust program that declares variables of different scalar types and prints their values.
๐ What You'll Learn
Declare variables with scalar types: i32, f64, char, and bool
Assign exact values to these variables
Print the values of these variables
๐ก Why This Matters
๐ Real World
Scalar data types are the building blocks for storing simple values like counts, measurements, letters, and true/false flags in any Rust program.
๐ผ Career
Understanding scalar types is essential for writing safe and efficient Rust code, which is valuable in systems programming, embedded development, and performance-critical applications.
Progress0 / 4 steps
1
Declare an integer variable
Create a variable called my_integer of type i32 and assign it the value 42.
Rust
Hint
Use let to declare a variable and specify the type with a colon.
2
Add a floating-point variable
Add a variable called my_float of type f64 and assign it the value 3.14 below the integer variable.
Rust
Hint
Remember to use let and specify the type f64 for floating-point numbers.
3
Add a character and a boolean variable
Add two variables: my_char of type char with value 'R', and my_bool of type bool with value true below the previous variables.
Rust
Hint
Use single quotes for char values and true or false for bool.
4
Print all variables
Use println! to print the values of my_integer, my_float, my_char, and my_bool each on its own line.
Rust
Hint
Use println!("{}", variable); to print each variable on its own line.
Practice
(1/5)
1. Which of the following is NOT a scalar data type in Rust?
easy
A. Integer
B. Boolean
C. Array
D. Character
Solution
Step 1: Recall scalar data types in Rust
Scalar types include integers, floats, booleans, and characters, which hold a single value.
Step 2: Identify the non-scalar type
An array holds multiple values and is a compound type, not scalar.
Final Answer:
Array -> Option C
Quick Check:
Scalar types exclude arrays [OK]
Hint: Scalar types hold one value; arrays hold many [OK]
Common Mistakes:
Confusing arrays with scalar types
Thinking floats are not scalar
Mixing compound and scalar types
2. Which of the following is the correct way to declare a boolean variable named is_active set to true in Rust?
easy
A. let is_active: bool = true;
B. let is_active = True;
C. let is_active = 1;
D. let is_active: boolean = true;
Solution
Step 1: Check Rust boolean syntax
Rust uses lowercase true and false for booleans, and the type is bool.
Step 2: Validate each option
let is_active: bool = true; correctly declares is_active as a bool with value true. let is_active = True; uses uppercase True which is invalid. let is_active = 1; assigns an integer, not a boolean. let is_active: boolean = true; uses boolean which is not a Rust type.
Final Answer:
let is_active: bool = true; -> Option A
Quick Check:
Boolean type is bool and value is lowercase true [OK]
Hint: Booleans use lowercase true/false and type bool [OK]
Common Mistakes:
Using uppercase True/False
Using wrong type name boolean
Assigning integers to booleans
3. What will be the output of the following Rust code?
let x: i32 = 10;
let y: f64 = 3.5;
println!("{}", x as f64 + y);
medium
A. 13
B. 13.5
C. Type error
D. 10.0
Solution
Step 1: Understand type casting in the code
The integer x is cast to f64 using as f64, so 10 becomes 10.0.
Step 2: Perform the addition
Adding 10.0 (casted x) and 3.5 (y) results in 13.5.
Final Answer:
13.5 -> Option B
Quick Check:
Cast integer to float, then add floats = 13.5 [OK]
Hint: Cast integers to float before adding floats [OK]
Common Mistakes:
Forgetting to cast integer
Expecting integer addition
Assuming type error without cast
4. Identify the error in the following Rust code snippet:
let letter: char = "a";
medium
A. Missing semicolon
B. char cannot be assigned a letter
C. Variable name is invalid
D. char type must use single quotes, not double quotes
Solution
Step 1: Check char literal syntax
In Rust, char literals must be enclosed in single quotes, e.g., 'a', not double quotes.
Step 2: Analyze the code
The code uses double quotes "a", which is a string slice, not a char. This causes a type mismatch error.
Final Answer:
char type must use single quotes, not double quotes -> Option D
Quick Check:
char literals use single quotes 'a' [OK]
Hint: Use single quotes for char, double quotes for strings [OK]
Common Mistakes:
Using double quotes for char
Confusing char with string
Ignoring type mismatch errors
5. You want to store the temperature reading 36.6 in Rust using scalar types. Which declaration is best and why?
Options:
A) let temp: i32 = 36.6;
B) let temp: char = '36';
C) let temp: bool = true;
D) let temp: f64 = 36.6;
hard
A. let temp: f64 = 36.6; because floats store decimal numbers
B. let temp: char = '36'; because characters store numbers
C. let temp: bool = true; because temperature is true or false
D. let temp: i32 = 36.6; because integers store decimal numbers
Solution
Step 1: Understand the data type needed for decimal numbers
Temperature 36.6 has a decimal part, so it requires a floating-point type like f64.
Step 2: Evaluate each option
let temp: i32 = 36.6; because integers store decimal numbers tries to assign a decimal to an integer, which is invalid. let temp: f64 = 36.6; because floats store decimal numbers correctly uses f64 for decimals. let temp: bool = true; because temperature is true or false uses boolean, which is unrelated. let temp: char = '36'; because characters store numbers uses char with invalid multi-character literal.
Final Answer:
let temp: f64 = 36.6; because floats store decimal numbers -> Option A
Quick Check:
Decimal numbers need float types like f64 [OK]
Hint: Use float types for decimal numbers like temperature [OK]
Common Mistakes:
Assigning decimals to integers
Using bool for numeric values
Using char for multi-digit numbers
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.