Bird
Raised Fist0
Kotlinprogramming~20 mins

It keyword for single parameter in Kotlin - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
It Keyword Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of lambda using 'it' keyword
What is the output of this Kotlin code snippet using the 'it' keyword in a lambda?
Kotlin
val numbers = listOf(1, 2, 3, 4)
val doubled = numbers.map { it * 2 }
println(doubled)
A[1, 2, 3, 4]
B[2, 4, 6, 8]
C[3, 6, 9, 12]
DCompilation error
Attempts:
2 left
💡 Hint
The 'it' keyword refers to the single parameter of the lambda function.
❓ Predict Output
intermediate
2:00remaining
Using 'it' in filter lambda
What will this Kotlin code print?
Kotlin
val words = listOf("apple", "banana", "cherry", "date")
val filtered = words.filter { it.length > 5 }
println(filtered)
A["banana", "cherry"]
B["apple", "date"]
C["banana", "date"]
D[]
Attempts:
2 left
💡 Hint
The 'it' keyword is the current element in the list during filtering.
🔧 Debug
advanced
2:00remaining
Identify the error with 'it' usage
What error does this Kotlin code produce?
Kotlin
val numbers = listOf(1, 2, 3)
numbers.forEach { println(it) }
numbers.forEach { val it = 5; println(it) }
ACompilation error: 'it' cannot be redeclared
BRuntime error: NullPointerException
CCompilation error: Val cannot be reassigned
DNo error, prints 1 2 3 5 5 5
Attempts:
2 left
💡 Hint
You cannot redeclare 'it' inside the lambda.
❓ Predict Output
advanced
2:00remaining
Output of nested lambdas with 'it'
What is the output of this Kotlin code using nested lambdas with 'it'?
Kotlin
val list = listOf(1, 2, 3)
val result = list.map { it * 2 }.filter { it > 3 }
println(result)
A[2, 4, 6]
B[1, 2, 3]
C[4, 6]
DCompilation error due to ambiguous 'it'
Attempts:
2 left
💡 Hint
Each lambda has its own 'it' referring to the current element in that lambda.
🧠 Conceptual
expert
2:00remaining
Understanding 'it' scope in Kotlin lambdas
Consider this Kotlin code snippet. What is the value of 'result' after execution?
Kotlin
val result = listOf(1, 2, 3).fold(0) { acc, it -> acc + it }
ACompilation error: 'it' cannot be used with two parameters
B0
C3
D6
Attempts:
2 left
💡 Hint
In fold, the lambda has two parameters, so 'it' is not used implicitly.

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

  1. Step 1: Understand lambda parameters

    In Kotlin, if a lambda has only one parameter, you don't need to name it explicitly.
  2. Step 2: Role of it

    The keyword it automatically refers to that single parameter inside the lambda.
  3. Final Answer:

    The single implicit parameter of the lambda -> Option A
  4. 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

  1. Step 1: Identify lambda with single parameter

    The lambda inside map has one parameter, so it can be used implicitly.
  2. Step 2: Check syntax correctness

    list.map { it * 2 } correctly uses it without naming the parameter explicitly.
  3. Final Answer:

    list.map { it * 2 } -> Option A
  4. 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

  1. Step 1: Understand the filter condition

    The lambda filters numbers where it > 1, so only numbers greater than 1 remain.
  2. Step 2: Apply filter to the list

    From the list [1, 2, 3], numbers 2 and 3 satisfy the condition.
  3. Final Answer:

    [2, 3] -> Option C
  4. 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

  1. Step 1: Analyze the lambda expression

    The expression it * is incomplete; it lacks a value after the multiplication operator.
  2. Step 2: Identify syntax error

    This causes a syntax error because Kotlin expects a complete expression after *.
  3. Final Answer:

    Syntax error: incomplete expression after * -> Option D
  4. 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

  1. Step 1: Understand the goal

    We want words whose lengths are greater than 3, so we filter words based on their length.
  2. 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.
  3. Final Answer:

    words.filter { it.length > 3 } -> Option B
  4. 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 unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard