Wpis z mikrobloga

Zacząłem się uczyć języka kotlin i nie rozumiem do końca wyrażeń takich jak w funkcji poniżej. Czy może ktoś napisać jak się wykonuje taka funkcja?

fun makeMathFunc(num1: Int):(Int) -> Int = {num2 -> num1 * num2}

i wywołanie:
val mult3 = makeMathFunc(3)
println("5*3= ${mult3(5)}")

#programowanie #kotlin
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@AndekQR: Funkcja zwraca ci funkcję, w dużym skrócie. Ta funkcja będzie miała dostęp do przekazanych w momencie jej tworzenia wartości/referencji. Możesz to wykorzystać np. przy wyrażeniach funkcyjnych t.j. map lub reduce
  • Odpowiedz
via Wykop Mobilny (Android)
  • 0
@AndekQR: istotny jest typ zwracany:
(Int) -> Int. oznacza to że funkcja ta zwraca funkcję która przyjmuje jeden argument Int i zwraca Int. num1 to argument formalny, natomiast num2 to nazwa argumentu przekazywanego do stworzonej funkcji.

val mult3 = makeMathFunc(3)
tworzy funkcję która jako num1 przyjmuje 3. innymi slowy, mult3 to funkcja która przyjmuje argument typu Int i zwracająca ten argument pomnożony przez 3.

teraz każde wywołanie mult3 spowoduje że
  • Odpowiedz