Functions help you organize your code by giving a name to a set of instructions. This makes your code easier to read and reuse.
When you want to repeat a task multiple times without rewriting code.
When you want to break a big problem into smaller, manageable parts.
When you want to give a clear name to a piece of code to explain what it does.
When you want to get a result from some input values.
When you want to keep your code clean and organized.
Syntax
Kotlin
fun functionName(parameter1: Type1, parameter2: Type2): ReturnType {
// code to runreturn value
}
The keyword fun starts the function declaration.
Parameters have a name and a type, separated by a colon.
Examples
A simple function with no parameters and no return value.
Kotlin
fun greet() {
println("Hello!")
}
A function that takes two numbers and returns their sum.
Kotlin
fun add(a: Int, b: Int): Int {
return a + b
}
A short function that returns the square of a number using expression body syntax.
Kotlin
fun square(x: Int) = x * x
Sample Program
This program defines a function greet that says hello to a given name. The main function calls greet twice with different names.
Kotlin
fun greet(name: String) {
println("Hello, $name!")
}
fun main() {
greet("Alice")
greet("Bob")
}
OutputSuccess
Important Notes
If your function does not return a value, you can omit the return type or use Unit.
Use meaningful names for functions and parameters to make your code easier to understand.
Summary
Functions start with the fun keyword followed by a name and parameters.
Parameters have names and types inside parentheses.
Functions can return a value with a specified return type.
Practice
(1/5)
1. Which of the following is the correct way to declare a simple function named greet in Kotlin that takes no parameters and returns no value?
easy
A. function greet() { println("Hello") }
B. fun greet() { println("Hello") }
C. def greet() { println("Hello") }
D. fun greet { println("Hello") }
Solution
Step 1: Identify the correct keyword for function declaration
Kotlin uses the keyword fun to declare functions. Options using function or def are incorrect.
Step 2: Check the function syntax for parameters and braces
The function must have parentheses even if there are no parameters, so fun greet { println("Hello") } is incorrect because it misses parentheses.
Final Answer:
fun greet() { println("Hello") } -> Option B
Quick Check:
fun + name + () + body = B [OK]
Hint: Remember: Kotlin functions start with 'fun' and need parentheses [OK]
Common Mistakes:
Using 'function' or 'def' instead of 'fun'
Omitting parentheses for parameter list
Missing curly braces for function body
2. Which of the following is the correct syntax to declare a function add that takes two Int parameters and returns their sum as an Int?
easy
A. fun add(a: Int, b: Int): Int { a + b }
B. fun add(a Int, b Int): Int { return a + b }
C. fun add(a: Int, b: Int) -> Int { return a + b }
D. fun add(a: Int, b: Int): Int = a + b
Solution
Step 1: Check parameter declaration syntax
Parameters must be declared as name: Type, so fun add(a Int, b Int): Int { return a + b } is incorrect because it misses colons.
Step 2: Verify return type and function body syntax
fun add(a: Int, b: Int): Int = a + b uses the correct syntax with an expression body and return type. fun add(a: Int, b: Int) -> Int { return a + b } uses '->' which is invalid in Kotlin. fun add(a: Int, b: Int): Int { a + b } misses the return keyword in a block body, so it won't return the sum.
Final Answer:
fun add(a: Int, b: Int): Int = a + b -> Option D
Quick Check:
fun + parameters with colons + : ReturnType + = expression = A [OK]
Hint: Use colons for types and '=' for single-expression functions [OK]
Common Mistakes:
Omitting colons between parameter names and types
Using '->' instead of ':' for return type
Missing 'return' in block body functions
3. What is the output of the following Kotlin code?
fun multiply(x: Int, y: Int): Int {
return x * y
}
fun main() {
println(multiply(3, 4))
}
medium
A. 12
B. 34
C. 7
D. Error
Solution
Step 1: Understand the multiply function
The function takes two integers and returns their product using return x * y.
Step 2: Calculate the function call multiply(3, 4)
3 multiplied by 4 equals 12, so the function returns 12.
Final Answer:
12 -> Option A
Quick Check:
3 * 4 = 12 [OK]
Hint: Multiply parameters and check return value [OK]
Common Mistakes:
Adding instead of multiplying
Concatenating numbers as strings
Assuming syntax error due to missing expression body
4. Identify the error in the following Kotlin function declaration:
fun divide(a: Int, b: Int): Int {
return a / b
medium
A. Missing closing brace '}'
B. Incorrect return type
C. Parameters should not have types
D. Function name is invalid
Solution
Step 1: Check function syntax completeness
The function body starts with '{' but there is no closing '}', so the code is incomplete.
Step 2: Verify other syntax parts
The return type is correct, parameters have types, and the function name is valid, so no other errors.
Final Answer:
Missing closing brace '}' -> Option A
Quick Check:
All blocks need matching braces [OK]
Hint: Count opening and closing braces carefully [OK]
Common Mistakes:
Forgetting to close function body with '}'
Misplacing colons in parameters
Using invalid function names
5. You want to declare a Kotlin function formatName that takes two parameters: firstName and lastName (both Strings), and returns a single String in the format "Last, First". Which of the following is the correct declaration and implementation?
hard
A. fun formatName(firstName: String, lastName: String): Int = "$lastName, $firstName"
B. fun formatName(firstName String, lastName String) = lastName + ", " + firstName
C. fun formatName(firstName: String, lastName: String): String { return "$lastName, $firstName" }
D. fun formatName(firstName: String, lastName: String): String { "$lastName, $firstName" }
Solution
Step 1: Check parameter and return type syntax
Parameters must use name: Type and return type must match. A uses : Int but returns String (type mismatch). B misses colons (firstName String invalid).
Step 2: Verify function body syntax
C has block body { "$lastName, $firstName" } without return, returns Unit not String. D correctly uses block body with return and string interpolation.
Final Answer:
fun formatName(firstName: String, lastName: String): String { return "$lastName, $firstName" } -> Option C
Quick Check:
Correct types + block body with return + interpolation = D [OK]
Hint: Use return keyword in block body functions for clarity [OK]
Common Mistakes:
Omitting return keyword in block body
Missing return type declaration
Incorrect string concatenation or interpolation
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.