Type inference is when the Kotlin compiler automatically figures out the type of a variable or expression without you having to explicitly write it.
Click to reveal answer
beginner
How does Kotlin infer the type of val number = 10?
Kotlin sees the value 10 is an integer, so it infers the type of number as Int.
Click to reveal answer
beginner
Can Kotlin infer the type of a variable declared with var?
Yes, Kotlin can infer the type for var variables just like val, based on the assigned value.
Click to reveal answer
intermediate
What happens if you declare a variable without initializing it, like val x?
Kotlin requires you to initialize variables when declaring them without an explicit type. Otherwise, the compiler cannot infer the type and will show an error.
Click to reveal answer
beginner
Why is type inference helpful for Kotlin programmers?
Type inference makes code shorter and easier to read by removing the need to write types explicitly when they are obvious from the assigned value.
Click to reveal answer
What type does Kotlin infer for val name = "Alice"?
AInt
BString
CBoolean
DAny
✗ Incorrect
The value "Alice" is a text string, so Kotlin infers the type as String.
Which of these declarations will cause a type inference error in Kotlin?
Aval x = 5
Bvar y = true
Cval message = "Hi"
Dval z
✗ Incorrect
Declaring val z without initialization or explicit type causes an error because Kotlin cannot infer the type.
If you write var count = 10, what type does Kotlin assign to count?
ADouble
BString
CInt
DFloat
✗ Incorrect
The number 10 is an integer, so Kotlin infers the type Int.
Can Kotlin infer the type of a variable from a function return value?
AYes, if the function returns a value
BNo, you must always specify the type
COnly for built-in functions
DOnly if the function is inline
✗ Incorrect
Kotlin can infer the type of a variable from the return value of a function.
What keyword is used to declare a read-only variable with inferred type in Kotlin?
Aval
Bvar
Clet
Dconst
✗ Incorrect
val declares a read-only variable with type inferred by the compiler.
Explain how Kotlin's compiler infers the type of a variable when you assign a value.
Think about how Kotlin guesses the type from the value you give.
You got /3 concepts.
Describe a situation where Kotlin's type inference will cause a compilation error.
What if you declare a variable but don't assign a value or type?
You got /3 concepts.
Practice
(1/5)
1. What does type inference mean in Kotlin?
easy
A. The compiler automatically figures out the variable's type.
B. You must always specify the variable type manually.
C. The program runs slower because types are guessed at runtime.
D. It means variables cannot change their values.
Solution
Step 1: Understand type inference concept
Type inference means the compiler looks at the value assigned and decides the variable's type automatically.
Step 2: Compare options with definition
Only The compiler automatically figures out the variable's type. correctly describes this automatic type detection by the compiler.
Final Answer:
The compiler automatically figures out the variable's type. -> Option A
Quick Check:
Type inference = automatic type detection [OK]
Hint: Type inference means no need to write types explicitly [OK]
Common Mistakes:
Thinking types are guessed at runtime
Believing you must always write types
Confusing type inference with variable mutability
2. Which of the following Kotlin variable declarations uses type inference correctly?
easy
A. val number: String = 10
B. val number: Int = "10"
C. val number = 10
D. val number =
Solution
Step 1: Check each declaration for correctness
val number = 10 assigns 10 to 'number' without specifying type, so compiler infers Int type correctly.
Step 2: Identify errors in other options
val number: Int = "10" assigns a String to Int type explicitly - error. val number: String = 10 assigns Int to String type - error. val number = is incomplete syntax.
Final Answer:
val number = 10 -> Option C
Quick Check:
Correct syntax with inferred type = val number = 10 [OK]
Hint: Look for variable with value but no explicit type [OK]
Common Mistakes:
Mixing types in assignment
Leaving declaration incomplete
Assigning wrong type to explicit type
3. What is the inferred type of result in this Kotlin code?
val result = listOf(1, 2, 3).map { it * 2 }
medium
A. Array<Int>
B. List<Int>
C. Int
D. List<String>
Solution
Step 1: Analyze the expression assigned to result
listOf(1, 2, 3) creates a List<Int>. The map function multiplies each element by 2, so the result is a List<Int>.
Step 2: Confirm the inferred type
Since map returns a List of the transformed elements, the inferred type is List<Int>.
Final Answer:
List<Int> -> Option B
Quick Check:
Mapping Int list with Int operation = List<Int> [OK]
Hint: map keeps list type, changes element type if needed [OK]
Common Mistakes:
Confusing List with Array
Thinking map returns a single Int
Assuming type changes to String
4. Identify the error in this Kotlin code snippet related to type inference:
val x = null
val y = x + 5
medium
A. Cannot add Int to null value
B. x cannot be null without explicit type
C. Type inference infers x as Int automatically
D. No error, code runs fine
Solution
Step 1: Understand type inference for null assignment
Assigning null without type makes x's type Nothing?, which cannot be used in arithmetic.
Step 2: Check the operation y = x + 5
Adding 5 to null is invalid; Kotlin does not allow arithmetic with null values.
Final Answer:
Cannot add Int to null value -> Option A
Quick Check:
Arithmetic with null causes error [OK]
Hint: Null needs explicit type; can't do math with null [OK]
Common Mistakes:
Assuming null has Int type
Ignoring null safety rules
Thinking code compiles without error
5. Given this Kotlin code, what is the inferred type of data?
val data = mapOf("a" to 1, "b" to 2).mapValues { it.value * 10 }
hard
A. List>
B. List<Int>
C. Map
D. Map
Solution
Step 1: Analyze mapOf and mapValues usage
mapOf creates a Map. mapValues transforms each value by multiplying by 10, keeping keys same.
Step 2: Determine the resulting type
mapValues returns a Map with the same key type and transformed value type, so Map.
Final Answer:
Map -> Option D
Quick Check:
mapValues keeps Map type, changes values [OK]
Hint: mapValues keeps Map type, changes only values [OK]
Common Mistakes:
Confusing mapValues with map returning List
Assuming values become Strings
Thinking result is a List instead of Map
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.