Discover how a tiny keyword can make your Kotlin code cleaner and faster to write!
Why It keyword for single parameter in Kotlin? - Purpose & Use Cases
Imagine you want to write a small function that takes one input and does something with it, like doubling a number. Without a shortcut, you have to name the input every time, even if you only use it once.
Manually naming the single parameter every time can feel repetitive and clutter your code. It slows you down and makes your code longer than needed, especially for simple operations.
Kotlin's it keyword automatically represents the single parameter in a lambda, so you don't have to name it. This keeps your code short, clean, and easy to read.
list.map { number -> number * 2 }list.map { it * 2 }You can write concise and readable code for simple single-parameter functions without extra naming.
When processing a list of prices to apply a discount, you can quickly write prices.map { it * 0.9 } instead of naming each price.
Manually naming single parameters is repetitive and verbose.
it keyword simplifies single-parameter lambdas.
Code becomes shorter, cleaner, and easier to understand.
Practice
it keyword represent in a Kotlin lambda with a single parameter?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
The keywordititautomatically refers to that single parameter inside the lambda.Final Answer:
The single implicit parameter of the lambda -> Option AQuick Check:
it= single lambda parameter [OK]
it means the one lambda input [OK]- Thinking
itis a loop variable - Confusing
itwith a keyword to declare variables - Assuming
itprints output
it in a Kotlin lambda that doubles each number in a list?Solution
Step 1: Identify lambda with single parameter
The lambda insidemaphas one parameter, soitcan be used implicitly.Step 2: Check syntax correctness
list.map { it * 2 }correctly usesitwithout naming the parameter explicitly.Final Answer:
list.map { it * 2 } -> Option AQuick Check:
Implicit single parameter lambda syntax = list.map { it * 2 } [OK]
it only when lambda has one parameter [OK]- Using explicit parameter name and
ittogether - Omitting parameter name but adding arrow
- Trying to multiply without parameter
val numbers = listOf(1, 2, 3)
val result = numbers.filter { it > 1 }
println(result)Solution
Step 1: Understand the filter condition
The lambda filters numbers whereit > 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 CQuick Check:
Filter withit > 1= [2, 3] [OK]
it meets condition [OK]- Including 1 in the result
- Confusing filter with map
- Expecting original list unchanged
val list = listOf(1, 2, 3)
val doubled = list.map { it * }
println(doubled)Solution
Step 1: Analyze the lambda expression
The expressionit *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 DQuick Check:
Incomplete expression causes syntax error [OK]
- Assuming
it *is valid alone - Thinking
itmust be declared explicitly - Ignoring syntax errors
val words = listOf("apple", "banana", "cat"), which Kotlin code uses it correctly to create a list of word lengths greater than 3?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, usingitproperly.Final Answer:
words.filter { it.length > 3 } -> Option BQuick Check:
Filter words by length > 3 = words.filter { it.length > 3 } [OK]
it.length > 3 to get words longer than 3 [OK]- Filtering on string directly without length
- Using
itincorrectly in filter - Mixing order of map and filter
Ready to prove it?
Pass the test and this pattern moves unknown
