📖 Scenario: Imagine you are creating a simple program to store information about a book. You want to make sure that the book's title does not change once it is set.
🎯 Goal: Learn how to use val in Kotlin to create an immutable reference for a variable.
📋 What You'll Learn
Create a variable using val to hold a book title
Assign the exact string "Kotlin Basics" to the variable
Try to change the value of the variable (this will be explained)
Print the value of the variable
💡 Why This Matters
🌍 Real World
In real apps, using <code>val</code> helps keep important data safe and predictable, like user names or IDs that should not change.
💼 Career
Understanding <code>val</code> is essential for Kotlin developers to write reliable and bug-free code.
Progress0 / 4 steps
1
Create an immutable variable with val
Create a variable called bookTitle using val and assign it the string "Kotlin Basics".
Kotlin
Hint
Use val to make the variable immutable. For example: val name = "value".
2
Try to change the val variable
Add a line below that tries to assign "Advanced Kotlin" to bookTitle.
Kotlin
Hint
Try writing bookTitle = "Advanced Kotlin". Kotlin will not allow this because bookTitle is immutable.
3
Print the value of the val variable
Write a println statement to print the value of bookTitle.
Kotlin
Hint
Use println(bookTitle) to show the value on the screen.
4
Run and observe the output
Run the program and observe the output. It should print Kotlin Basics.
Kotlin
Hint
The program prints the value of bookTitle. Since it is immutable, it stays as Kotlin Basics.
Practice
(1/5)
1. What does the val keyword do in Kotlin?
easy
A. Defines a class
B. Creates an immutable reference that cannot be reassigned
C. Declares a function
D. Creates a mutable variable that can be reassigned
Solution
Step 1: Understand the role of val
val declares a variable whose reference cannot be changed after assignment.
Step 2: Compare with other keywords
var allows reassignment, but val does not.
Final Answer:
Creates an immutable reference that cannot be reassigned -> Option B
Quick Check:
val = immutable reference [OK]
Hint: Remember: val means fixed reference, var means changeable [OK]
Common Mistakes:
Confusing val with var
Thinking val makes the object itself immutable
Assuming val declares a function or class
2. Which of the following is the correct syntax to declare an immutable integer variable named count with value 10 in Kotlin?
easy
A. val count = 10
B. var count = 10
C. int val count = 10
D. val count : Int =
Solution
Step 1: Identify correct keyword and syntax
val is used for immutable variables, and Kotlin infers type if not specified.
Step 2: Check each option
var count = 10 uses var (mutable), C has invalid syntax, D is incomplete.
Final Answer:
val count = 10 -> Option A
Quick Check:
Immutable variable syntax = val count = 10 [OK]
Hint: Use val for fixed values, var for changeable ones [OK]
Common Mistakes:
Using var instead of val for immutable variables
Incorrect Kotlin type declarations
Leaving declarations incomplete
3. What will be the output of the following Kotlin code?
val list = mutableListOf(1, 2, 3)
list.add(4)
println(list)
medium
A. Runtime error
B. [1, 2, 3]
C. Compilation error
D. [1, 2, 3, 4]
Solution
Step 1: Understand val with mutable objects
val means the reference to the list cannot change, but the list itself can be modified.
Step 2: Analyze code behavior
Adding 4 to the mutable list changes its content, so printing shows [1, 2, 3, 4].
Final Answer:
[1, 2, 3, 4] -> Option D
Quick Check:
val reference + mutable object = modified list [OK]
Hint: val fixes reference, not object content if mutable [OK]
Common Mistakes:
Thinking val prevents modifying the list content
Expecting compilation or runtime errors
Confusing immutable reference with immutable object
4. Identify the error in the following Kotlin code:
val number = 5
number = 10
println(number)
medium
A. No error, prints 10
B. Runtime error: reassignment not allowed
C. Compilation error: val cannot be reassigned
D. Syntax error: missing semicolon
Solution
Step 1: Check reassignment of val variable
val variables cannot be reassigned after initialization.
Step 2: Identify error type
Trying to assign 10 to number causes a compilation error.
Final Answer:
Compilation error: val cannot be reassigned -> Option C
Quick Check:
val reassignment = compilation error [OK]
Hint: val variables cannot change after first assignment [OK]
Common Mistakes:
Assuming val variables can be reassigned
Confusing runtime errors with compile errors
Ignoring Kotlin's no-semicolon rule
5. Given the following Kotlin code, what will be the output?
val map = mutableMapOf("a" to 1, "b" to 2)
map["a"] = 3
println(map)
Explain why this works even though map is declared with val.
hard
A. {a=3, b=2}
B. {a=1, b=2}
C. Compilation error: cannot modify val map
D. Runtime error
Solution
Step 1: Understand val with mutable collections
val means the reference to the map cannot change, but the map's content can be modified.
Step 2: Analyze the map update
Updating key "a" to 3 changes the map content, so printing shows {a=3, b=2}.
Final Answer:
{a=3, b=2} -> Option A
Quick Check:
val reference + mutable map = updated map content [OK]
Hint: val fixes reference, mutable map content can change [OK]
Common Mistakes:
Thinking val prevents modifying map content
Expecting compilation or runtime errors
Confusing immutable reference with immutable object
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.