Bird
Raised Fist0
Kotlinprogramming~5 mins

Function references (::functionName) in Kotlin - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a function reference in Kotlin?
A function reference in Kotlin is a way to refer to a function by its name using the :: operator, allowing you to pass the function as a value or assign it to a variable.
Click to reveal answer
beginner
How do you create a function reference for a top-level function named printMessage?
You create it by writing ::printMessage. This refers to the function itself without calling it.
Click to reveal answer
beginner
What is the difference between printMessage() and ::printMessage in Kotlin?
printMessage() calls the function immediately, while ::printMessage creates a reference to the function without calling it.
Click to reveal answer
intermediate
Can you use function references to pass functions as arguments in Kotlin? Give an example.
Yes. For example, listOf(1, 2, 3).forEach(::println) passes the println function as a reference to forEach.
Click to reveal answer
intermediate
How do you reference a member function of a class in Kotlin?
You use the class name followed by :: and the function name, like <code>String::toUpperCase</code>. This creates a reference to the member function.
Click to reveal answer
What does the Kotlin expression ::myFunction represent?
AA reference to the function named myFunction
BA call to the function myFunction
CA variable named myFunction
DAn error in syntax
Which of the following is a correct way to pass a function reference to a higher-order function in Kotlin?
Alist.forEach(::print)
Blist.forEach(print())
Clist.forEach(print)
Dlist.forEach(:print)
What is the output of this Kotlin code?
fun greet() = println("Hello")
val ref = ::greet
ref()
ANo output
BHello
Cref
DCompilation error
How do you reference a member function length of the String class in Kotlin?
A::String.length
Blength::String
CString::length
DString.length::
Which statement is true about function references in Kotlin?
AThey are not supported in Kotlin.
BThey immediately execute the function.
CThey can only reference top-level functions.
DThey allow functions to be passed as values.
Explain what a function reference (::functionName) is in Kotlin and how it differs from calling a function.
Think about how you can pass a function itself, not its result.
You got /4 concepts.
    Describe how to use function references with higher-order functions in Kotlin with an example.
    Consider how you can pass println directly to forEach.
    You got /4 concepts.

      Practice

      (1/5)
      1. What does the Kotlin syntax ::functionName represent?
      easy
      A. A call to the function named functionName
      B. A comment about the function named functionName
      C. A variable declaration named functionName
      D. A reference to the function named functionName

      Solution

      1. Step 1: Understand the :: operator in Kotlin

        The :: operator is used to get a reference to a function, not to call it.
      2. Step 2: Differentiate between calling and referencing

        Calling a function uses parentheses like functionName(), while referencing uses ::functionName.
      3. Final Answer:

        A reference to the function named functionName -> Option D
      4. Quick Check:

        Function reference = ::functionName [OK]
      Hint: Remember :: means 'point to function', not call it [OK]
      Common Mistakes:
      • Confusing function reference (::) with function call (())
      • Thinking :: declares a variable
      • Assuming :: is a comment or annotation
      2. Which of the following is the correct syntax to pass a function reference to map in Kotlin?
      easy
      A. list.map(::functionName)
      B. list.map(:functionName)
      C. list.map(functionName())
      D. list.map(functionName)

      Solution

      1. Step 1: Identify how to pass function references in Kotlin

        Function references use the :: operator before the function name when passed as arguments.
      2. Step 2: Check each option for correct syntax

        list.map(::functionName) uses ::functionName, which is the correct way to pass a function reference to map.
      3. Final Answer:

        list.map(::functionName) -> Option A
      4. Quick Check:

        Pass function reference with :: [OK]
      Hint: Use :: before function name when passing as argument [OK]
      Common Mistakes:
      • Passing function call instead of reference (using parentheses)
      • Omitting :: operator
      • Using incorrect single colon : instead of double ::
      3. What is the output of this Kotlin code?
      fun square(x: Int) = x * x
      val numbers = listOf(1, 2, 3)
      val squares = numbers.map(::square)
      println(squares)
      medium
      A. [1, 4, 9]
      B. [square, square, square]
      C. [1, 2, 3]
      D. Compilation error

      Solution

      1. Step 1: Understand the function reference usage

        The ::square passes the square function to map, which applies it to each element.
      2. Step 2: Calculate the result of applying square to each number

        Applying square to 1, 2, 3 gives 1, 4, 9 respectively.
      3. Final Answer:

        [1, 4, 9] -> Option A
      4. Quick Check:

        map(::square) squares each element [OK]
      Hint: map(::function) applies function to each list item [OK]
      Common Mistakes:
      • Expecting original list instead of transformed list
      • Confusing function reference with function call
      • Thinking output is function names instead of results
      4. Identify the error in this Kotlin code snippet:
      fun greet(name: String) = "Hello, $name"
      val greeter = greet
      println(greeter("Alice"))
      medium
      A. Missing parentheses when assigning function reference
      B. Cannot assign function directly without :: operator
      C. Function greet must return Unit
      D. No error, code runs fine

      Solution

      1. Step 1: Check how function references are assigned

        Assigning a function to a variable requires the :: operator to get a reference.
      2. Step 2: Identify the missing :: operator

        The code assigns greet instead of ::greet, causing a type mismatch error.
      3. Final Answer:

        Cannot assign function directly without :: operator -> Option B
      4. Quick Check:

        Use :: to assign function reference [OK]
      Hint: Use :: when assigning function to variable [OK]
      Common Mistakes:
      • Assigning function name without ::
      • Adding parentheses which calls function instead of referencing
      • Assuming function must return Unit
      5. Given this Kotlin code, what will be the output?
      fun isEven(n: Int) = n % 2 == 0
      val numbers = listOf(1, 2, 3, 4, 5, 6)
      val evenNumbers = numbers.filter(::isEven)
      println(evenNumbers)

      Choose the correct output and explain why function references are useful here.
      hard
      A. [true, false, true, false, true, false]
      B. [1, 3, 5]
      C. [2, 4, 6]
      D. Compilation error due to filter usage

      Solution

      1. Step 1: Understand the function reference with filter

        The ::isEven passes the isEven function to filter, which keeps elements where the function returns true.
      2. Step 2: Apply isEven to each number and filter

        Numbers 2, 4, and 6 are even, so they remain in the filtered list.
      3. Step 3: Explain usefulness of function references

        Function references let us pass existing functions easily without writing extra lambdas.
      4. Final Answer:

        [2, 4, 6] -> Option C
      5. Quick Check:

        filter(::isEven) keeps even numbers [OK]
      Hint: filter(::function) keeps items where function returns true [OK]
      Common Mistakes:
      • Confusing filter with map output
      • Expecting boolean list instead of filtered list
      • Not using :: for function reference
      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