A single-expression function is a function that returns the result of a single expression directly without using curly braces or the return keyword.
Click to reveal answer
beginner
How do you write a single-expression function that adds two numbers in Kotlin?
fun add(a: Int, b: Int) = a + b
Click to reveal answer
intermediate
Can single-expression functions have explicit return types in Kotlin?
Yes, you can specify the return type explicitly, but Kotlin can often infer it automatically.
Click to reveal answer
beginner
What is the benefit of using single-expression functions?
They make the code shorter, cleaner, and easier to read by removing unnecessary syntax like braces and return statements.
Click to reveal answer
beginner
Is this a valid single-expression function in Kotlin?
fun greet() = println("Hello")
Yes, it is valid. The function calls println as a single expression and returns Unit.
Click to reveal answer
Which of the following is a correct single-expression function in Kotlin?
Afun square(x: Int): Int { x * x }
Bfun square(x: Int) { return x * x }
Cfun square(x: Int) { x * x }
Dfun square(x: Int) = x * x
✗ Incorrect
Option D uses the single-expression syntax with '=' and no braces, which is correct.
What is the return type of this function?
fun isEven(n: Int) = n % 2 == 0
ABoolean
BInt
CUnit
DString
✗ Incorrect
The expression 'n % 2 == 0' returns a Boolean value.
Can a single-expression function have multiple statements inside it?
ANo, it can only have one expression.
BOnly if wrapped in curly braces.
CYes, but only if separated by semicolons.
DYes, it can have any number of statements.
✗ Incorrect
Single-expression functions can only have one expression, no multiple statements.
Which keyword is NOT needed in a single-expression function?
Afun
Breturn
C=
Dparameter types
✗ Incorrect
The 'return' keyword is not needed because the expression result is returned automatically.
What does this function return?
fun greet() = println("Hi")
AString "Hi"
BNothing
CUnit
DBoolean
✗ Incorrect
println returns Unit, so the function returns Unit.
Explain what a single-expression function is and how it differs from a regular function in Kotlin.
Think about how the function body is written and how the result is returned.
You got /4 concepts.
Write a single-expression function in Kotlin that checks if a number is positive.
Use a comparison expression like 'n > 0'.
You got /4 concepts.
Practice
(1/5)
1. What is a key feature of a single-expression function in Kotlin?
easy
A. It returns the value of the expression after the equals sign automatically.
B. It requires a block body with explicit return statements.
C. It cannot have parameters.
D. It must be declared inside a class.
Solution
Step 1: Understand single-expression function syntax
Single-expression functions use an equals sign followed by an expression, without braces.
Step 2: Identify the return behavior
They automatically return the value of that expression without needing an explicit return keyword.
Final Answer:
It returns the value of the expression after the equals sign automatically. -> Option A
Quick Check:
Single-expression function = auto return [OK]
Hint: Look for '=' and no braces for single-expression functions [OK]
Common Mistakes:
Thinking explicit return is needed
Assuming parameters are not allowed
Believing it must be inside a class
2. Which of the following is the correct syntax for a single-expression function in Kotlin that adds two integers?
easy
A. fun add(a: Int, b: Int) { return a + b }
B. fun add(a: Int, b: Int) = a + b
C. fun add(a: Int, b: Int): Int { a + b }
D. fun add(a: Int, b: Int): Int => a + b
Solution
Step 1: Identify single-expression function syntax
It uses '=' followed by the expression without braces or explicit return.
Step 2: Check each option
fun add(a: Int, b: Int) = a + b matches this syntax exactly: fun add(a: Int, b: Int) = a + b.
Final Answer:
fun add(a: Int, b: Int) = a + b -> Option B
Quick Check:
Equals sign and expression = correct syntax [OK]
Hint: Single-expression functions use '=' not braces [OK]
Common Mistakes:
Using braces with return in single-expression functions
Using '=>' instead of '='
Omitting '=' sign
3. What will be the output of this Kotlin code?
fun square(x: Int) = x * x
println(square(4))
medium
A. 16
B. 4
C. x * x
D. Compilation error
Solution
Step 1: Understand the function behavior
The function square returns the product of x times x.
Step 2: Calculate the output for input 4
4 * 4 = 16, so square(4) returns 16, which is printed.
Final Answer:
16 -> Option A
Quick Check:
4 squared = 16 [OK]
Hint: Multiply input by itself for square function [OK]
Common Mistakes:
Expecting the expression as a string output
Confusing input with output
Thinking it causes a compile error
4. Identify the error in this Kotlin single-expression function:
fun greet(name: String) = {
"Hello, $name!"
}
medium
A. Missing return type declaration.
B. String interpolation is invalid.
C. Using braces {} after equals sign is incorrect.
D. Function must have no parameters.
Solution
Step 1: Check single-expression function syntax
Single-expression functions use '=' followed by an expression without braces.
Step 2: Identify the error
The braces after '=' create a lambda block, which is not allowed here; it should be just the expression.
Final Answer:
Using braces {} after equals sign is incorrect. -> Option C
Quick Check:
No braces allowed after '=' in single-expression functions [OK]
Hint: No braces after '=' in single-expression functions [OK]
Common Mistakes:
Adding braces after '='
Thinking return type is mandatory
Misusing string interpolation syntax
5. You want to write a Kotlin single-expression function that returns the length of a string only if it is not empty; otherwise, it returns zero. Which of these is correct?
hard
A. fun lengthOrZero(s: String) = s.length ?: 0
B. fun lengthOrZero(s: String) { if (s.isNotEmpty()) return s.length else return 0 }
C. fun lengthOrZero(s: String): Int = { if (s.isNotEmpty()) s.length else 0 }
D. fun lengthOrZero(s: String) = if (s.isNotEmpty()) s.length else 0
Solution
Step 1: Understand the requirement
The function must return length if string is not empty, else zero, in a single expression.
Step 2: Check each option
fun lengthOrZero(s: String) = if (s.isNotEmpty()) s.length else 0 uses a single-expression function with an if-else expression correctly. fun lengthOrZero(s: String) { if (s.isNotEmpty()) return s.length else return 0 } uses braces and explicit returns, not single-expression. fun lengthOrZero(s: String): Int = { if (s.isNotEmpty()) s.length else 0 } wrongly uses braces after '='. fun lengthOrZero(s: String) = s.length ?: 0 misuses the Elvis operator on Int.
Final Answer:
fun lengthOrZero(s: String) = if (s.isNotEmpty()) s.length else 0 -> Option D
Quick Check:
If-else expression after '=' = correct single-expression function [OK]
Hint: Use if-else expression directly after '=' for conditions [OK]
Common Mistakes:
Using braces after '='
Trying to use return inside single-expression function
Misusing Elvis operator on non-nullable Int
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.