Using the It Keyword for Single Parameter in Kotlin
📖 Scenario: You are working on a simple Kotlin program that processes a list of names. You want to transform each name to uppercase using a concise way to handle single parameters in lambda expressions.
🎯 Goal: Learn how to use the it keyword in Kotlin lambda expressions when there is only one parameter.
📋 What You'll Learn
Create a list of names with exact values
Create a lambda expression using the it keyword to convert names to uppercase
Store the transformed names in a new list
Print the new list
💡 Why This Matters
🌍 Real World
Using the <code>it</code> keyword helps write shorter and clearer code when working with collections, such as lists of names, products, or messages.
💼 Career
Many Kotlin jobs require working with collections and lambdas. Knowing how to use <code>it</code> makes your code concise and easier to read, which is valued in professional Kotlin development.
Progress0 / 4 steps
1
Create a list of names
Create a list called names with these exact values: "alice", "bob", "charlie"
Kotlin
Hint
Use listOf to create a list with the given strings.
2
Create a lambda expression using the it keyword
Create a new list called upperNames by calling names.map and use a lambda expression with the it keyword to convert each name to uppercase using it.uppercase()
Kotlin
Hint
Use map with a lambda that uses it to refer to each element.
3
Print the transformed list
Print the upperNames list using println(upperNames)
Kotlin
Hint
Use println to display the list.
4
Use the it keyword in a filter lambda
Create a new list called filteredNames by calling names.filter and use a lambda with the it keyword to keep only names that start with the letter 'a' using it.startsWith('a'). Then print filteredNames using println(filteredNames)
Kotlin
Hint
Use filter with a lambda using it to check the first letter.
Practice
(1/5)
1. What does the it keyword represent in a Kotlin lambda with a single parameter?
easy
A. The single implicit parameter of the lambda
B. A reserved word for loop counters
C. A keyword to declare variables
D. A function to print output
Solution
Step 1: Understand lambda parameters
In Kotlin, if a lambda has only one parameter, you don't need to name it explicitly.
Step 2: Role of it
The keyword it automatically refers to that single parameter inside the lambda.
Final Answer:
The single implicit parameter of the lambda -> Option A
Quick Check:
it = single lambda parameter [OK]
Hint: Remember: it means the one lambda input [OK]
Common Mistakes:
Thinking it is a loop variable
Confusing it with a keyword to declare variables
Assuming it prints output
2. Which of the following is the correct syntax to use it in a Kotlin lambda that doubles each number in a list?
easy
A. list.map { it * 2 }
B. list.map { x -> x * 2 }
C. list.map { it -> it * 2 }
D. list.map { * 2 }
Solution
Step 1: Identify lambda with single parameter
The lambda inside map has one parameter, so it can be used implicitly.
Step 2: Check syntax correctness
list.map { it * 2 } correctly uses it without naming the parameter explicitly.
Final Answer:
list.map { it * 2 } -> Option A
Quick Check:
Implicit single parameter lambda syntax = list.map { it * 2 } [OK]
Hint: Use it only when lambda has one parameter [OK]
Common Mistakes:
Using explicit parameter name and it together
Omitting parameter name but adding arrow
Trying to multiply without parameter
3. What is the output of this Kotlin code?
val numbers = listOf(1, 2, 3)
val result = numbers.filter { it > 1 }
println(result)
medium
A. [1, 2, 3]
B. [1]
C. [2, 3]
D. []
Solution
Step 1: Understand the filter condition
The lambda filters numbers where it > 1, so only numbers greater than 1 remain.
Step 2: Apply filter to the list
From the list [1, 2, 3], numbers 2 and 3 satisfy the condition.
Final Answer:
[2, 3] -> Option C
Quick Check:
Filter with it > 1 = [2, 3] [OK]
Hint: Filter keeps items where it meets condition [OK]
Common Mistakes:
Including 1 in the result
Confusing filter with map
Expecting original list unchanged
4. Identify the error in this Kotlin code snippet:
val list = listOf(1, 2, 3)
val doubled = list.map { it * }
println(doubled)
medium
A. Missing parameter name before *
B. No error, code runs fine
C. Using it without declaring lambda parameter
D. Syntax error: incomplete expression after *
Solution
Step 1: Analyze the lambda expression
The expression it * is incomplete; it lacks a value after the multiplication operator.
Step 2: Identify syntax error
This causes a syntax error because Kotlin expects a complete expression after *.
Final Answer:
Syntax error: incomplete expression after * -> Option D
Quick Check:
Incomplete expression causes syntax error [OK]
Hint: Check for complete expressions after operators [OK]
Common Mistakes:
Assuming it * is valid alone
Thinking it must be declared explicitly
Ignoring syntax errors
5. Given a list of strings val words = listOf("apple", "banana", "cat"), which Kotlin code uses it correctly to create a list of word lengths greater than 3?
hard
A. words.map { it.length > 3 }
B. words.filter { it.length > 3 }
C. words.map { it.length }.filter { it > 3 }
D. words.filter { length > 3 }.map { it }
Solution
Step 1: Understand the goal
We want words whose lengths are greater than 3, so we filter words based on their length.
Step 2: Analyze each option
words.filter { it.length > 3 }, words.filter { it.length > 3 }, correctly filters the words list to include only words with length greater than 3, using it properly.
Final Answer:
words.filter { it.length > 3 } -> Option B
Quick Check:
Filter words by length > 3 = words.filter { it.length > 3 } [OK]
Hint: Use filter with it.length > 3 to get words longer than 3 [OK]
Common Mistakes:
Filtering on string directly without length
Using it incorrectly in filter
Mixing order of map and filter
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.