📖 Scenario: You are building a simple calculator app that needs to perform basic math operations quickly and clearly.
🎯 Goal: Create single-expression functions in Kotlin to perform addition, subtraction, multiplication, and division.
📋 What You'll Learn
Create single-expression functions for addition, subtraction, multiplication, and division
Use concise syntax without curly braces or return statements
Call each function with example inputs
Print the results of each function call
💡 Why This Matters
🌍 Real World
Single-expression functions help write clean and simple code for small tasks like calculations in apps.
💼 Career
Understanding concise function syntax is useful for Kotlin developers to write readable and maintainable code efficiently.
Progress0 / 4 steps
1
Create addition function
Create a single-expression function called add that takes two Int parameters named a and b and returns their sum.
Kotlin
Hint
Use the equals sign = to define a single-expression function without curly braces.
2
Create subtraction function
Create a single-expression function called subtract that takes two Int parameters named a and b and returns the result of a - b.
Kotlin
Hint
Follow the same pattern as the add function but use subtraction.
3
Create multiplication and division functions
Create two single-expression functions: multiply and divide. Both take two Int parameters named a and b. multiply returns a * b. divide returns a / b.
Kotlin
Hint
Use the same single-expression function style for multiplication and division.
4
Print results of function calls
Call each function with the arguments 10 and 5. Print the results using println with messages: "10 + 5 = result", "10 - 5 = result", "10 * 5 = result", and "10 / 5 = result".
Kotlin
Hint
Use string templates with ${} inside println to show results.
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.