Bird
Raised Fist0
Android Kotlinmobile~10 mins

Extension functions in Android Kotlin - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to define an extension function isEven for Int that returns true if the number is even.

Android Kotlin
fun Int.[1](): Boolean = this % 2 == 0
Drag options to blanks, or click blank then click option'
AisEven
BevenCheck
CcheckEven
DisOdd
Attempts:
3 left
💡 Hint
Common Mistakes
Using a function name that does not describe the purpose clearly.
Forgetting to declare the function as an extension on Int.
2fill in blank
medium

Complete the code to call the extension function isEven on the integer number.

Android Kotlin
val number = 10
val result = number.[1]()
Drag options to blanks, or click blank then click option'
AcheckEven
BisEven
CisOdd
DevenCheck
Attempts:
3 left
💡 Hint
Common Mistakes
Trying to call the function without parentheses.
Using a wrong function name.
3fill in blank
hard

Fix the error in the extension function that tries to add a greet function to String but is missing the receiver type.

Android Kotlin
fun [1].greet() = "Hello, $this!"
Drag options to blanks, or click blank then click option'
AString
Bthis
Cfun
Dgreet
Attempts:
3 left
💡 Hint
Common Mistakes
Omitting the receiver type causes a syntax error.
Placing the receiver type after the function name.
4fill in blank
hard

Fill both blanks to create an extension function repeatText for String that repeats the string n times.

Android Kotlin
fun String.[1](n: Int): String = this.[2](n)
Drag options to blanks, or click blank then click option'
ArepeatText
B*
C+
Drepeat
Attempts:
3 left
💡 Hint
Common Mistakes
Using operators like * or + directly on strings without the repeat function.
Choosing a function name that does not match the task.
5fill in blank
hard

Fill all three blanks to create an extension function toTitleCase for String that capitalizes the first letter and makes the rest lowercase.

Android Kotlin
fun String.[1](): String = this.substring(0,1).[2]() + this.substring(1).[3]()
Drag options to blanks, or click blank then click option'
AtoTitleCase
Buppercase
Ccapitalize
Dlowercase
Attempts:
3 left
💡 Hint
Common Mistakes
Using capitalize() which capitalizes the first letter but leaves the rest unchanged.
Not converting the rest of the string to lowercase.

Practice

(1/5)
1. What is the main purpose of an extension function in Kotlin?
easy
A. To override existing functions in a class
B. To create a new subclass from an existing class
C. To add new functions to existing classes without modifying them
D. To delete functions from a class

Solution

  1. Step 1: Understand extension functions

    Extension functions let you add new functions to classes without changing their original code.
  2. Step 2: Compare options

    Only To add new functions to existing classes without modifying them correctly describes this behavior; others describe subclassing, overriding, or deleting, which are different concepts.
  3. Final Answer:

    To add new functions to existing classes without modifying them -> Option C
  4. Quick Check:

    Extension function = Add new functions [OK]
Hint: Extension functions add features without changing original class [OK]
Common Mistakes:
  • Confusing extension functions with inheritance
  • Thinking extension functions override existing methods
  • Believing extension functions can remove class methods
2. Which of the following is the correct syntax to declare an extension function isEven() for Int in Kotlin?
easy
A. fun isEven(): Boolean { return this % 2 == 0 }
B. fun Int.isEven(): Boolean { return this % 2 == 0 }
C. fun Int.isEven: Boolean { return this % 2 == 0 }
D. fun Int.isEven() Boolean = this % 2 == 0

Solution

  1. Step 1: Check extension function syntax

    Extension functions are declared with fun ClassName.functionName(), so fun Int.isEven() is correct.
  2. Step 2: Validate return type and body

    fun Int.isEven(): Boolean { return this % 2 == 0 } correctly uses parentheses and return type with a proper function body.
  3. Final Answer:

    fun Int.isEven(): Boolean { return this % 2 == 0 } -> Option B
  4. Quick Check:

    Extension syntax = fun ClassName.functionName() [OK]
Hint: Extension syntax always starts with fun ClassName.functionName() [OK]
Common Mistakes:
  • Omitting the receiver type before function name
  • Missing parentheses after function name
  • Incorrect return type declaration
3. What will be the output of this Kotlin code?
fun String.addHello() = "Hello, $this!"

fun main() {
  val name = "Anna"
  println(name.addHello())
}
medium
A. Hello, Anna!
B. AnnaHello, !
C. Hello, !
D. Compilation error

Solution

  1. Step 1: Understand the extension function

    The function addHello() adds "Hello, " before the string and an exclamation mark after.
  2. Step 2: Apply function to variable

    Calling name.addHello() where name is "Anna" returns "Hello, Anna!".
  3. Final Answer:

    Hello, Anna! -> Option A
  4. Quick Check:

    Extension adds prefix and suffix correctly [OK]
Hint: Extension functions run like normal methods on instances [OK]
Common Mistakes:
  • Misreading string interpolation syntax
  • Assuming extension modifies original string
  • Expecting output without exclamation mark
4. Identify the error in this Kotlin extension function code:
fun Int.isPositive() {
  return this > 0
}
medium
A. Function must declare a return type Boolean
B. The function body should not use return
C. The keyword 'this' cannot be used in extension functions
D. Extension function cannot be declared on Int

Solution

  1. Step 1: Check function return type

    The function returns a Boolean expression but does not declare a return type, which is required.
  2. Step 2: Confirm correct syntax

    Adding : Boolean after the function name fixes the error.
  3. Final Answer:

    Function must declare a return type Boolean -> Option A
  4. Quick Check:

    Return type needed for non-Unit functions [OK]
Hint: Declare return type when function returns a value [OK]
Common Mistakes:
  • Omitting return type for Boolean-returning functions
  • Thinking 'this' is disallowed in extensions
  • Confusing Unit functions with value-returning ones
5. You want to add an extension function toTitleCase() to String that capitalizes the first letter of each word. Which implementation correctly achieves this?
hard
A. fun String.toTitleCase() = this.toUpperCase()
B. fun String.toTitleCase() = this.lowercase()
C. fun String.toTitleCase() = this.replaceFirstChar { it.uppercase() }
D. fun String.toTitleCase() = split(" ").joinToString(" ") { it.capitalize() }

Solution

  1. Step 1: Understand title case requirement

    Title case means capitalizing the first letter of each word, not the whole string or just the first letter.
  2. Step 2: Analyze options

    fun String.toTitleCase() = split(" ").joinToString(" ") { it.capitalize() } splits the string by spaces, capitalizes each word, then joins them back, correctly implementing title case.
  3. Final Answer:

    fun String.toTitleCase() = split(" ").joinToString(" ") { it.capitalize() } -> Option D
  4. Quick Check:

    Title case = capitalize each word [OK]
Hint: Split words, capitalize each, then join for title case [OK]
Common Mistakes:
  • Using uppercase() on whole string instead of each word
  • Capitalizing only first character of entire string
  • Ignoring spaces between words
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