sggnology
하늘속에서IT
sggnology
전체 방문자
오늘
어제
  • 분류 전체보기 (83)
    • Algorithm (31)
      • Programmers (27)
      • Baekjoon (4)
    • WIKI (4)
      • VirtualBox (1)
      • Power Toys (1)
    • NodeJS (4)
      • nvm (1)
      • React (1)
      • Vue (1)
    • Dev Language (3)
      • Java (2)
      • Kotlin (1)
    • Spring Boot (17)
      • Gradle (1)
      • JPA (3)
    • DB (4)
      • MariaDB (3)
      • Redis (0)
    • Android (6)
      • Debug (3)
    • Nginx (3)
      • Debug (1)
    • Intellij (0)
    • Network (1)
    • Git (2)
      • GitHub (2)
    • Chrome Extension (0)
    • ETC (5)
      • Monitoring (2)
    • Linux (1)
      • WSL (1)
    • Visual Studio (1)
    • Side Project (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • spring boot
  • java
  • DB
  • mariadb
  • 오블완
  • 고득점KIT
  • 레벨2
  • Android Studio
  • 고득점 Kit
  • kotlin
  • 연습문제
  • 레벨3
  • nginx
  • 백준
  • 프로그래머스
  • 알고리즘
  • docker
  • 티스토리챌린지
  • JPA
  • 안드로이드 스튜디오

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
sggnology

하늘속에서IT

Dev Language/Kotlin

[Kotlin] 함수에 인자로 함수를 사용할 수 있다?(feat. 고차함수, 함수형 인터페이스)

2024. 6. 28. 11:42
728x90

고차 함수

    fun m1(action: () -> Unit) {
        action()
    }
  • 고차 함수는 함수를 인자로 받거나 함수를 반환하는 함수 입니다. Kotlin 에서는 함수 매개변수를 사용할 수 있습니다.

 

람다 표현식

val sum: (Int, Int) -> Int = { a, b -> a + b }
println(sum(3, 4))  // 출력: 7
  • 람다는 익명 함수로, 코드 블럭을 변수처럼 사용하거나 함수의 인자로 전달할 수 있게 해줍니다. 람다 표현식은 `{..}` 로 정의됩니다.

 

`고차 함수`와 `람다 표현식`

// 고차 함수
fun m1(action: (Int) -> String) {
    println(action(1))
}

// 람다 표현식 호출
m1 {
    "it is $it"
}
  • 위와 코드 예제와 같이 Kotlin 에서 고차 함수는 람다 표현식으로 표현될 수 있습니다.

 

함수형 인터페이스 & SAM(Single Abstract Method) 변환

// 함수형 인터페이스
interface IDoingThing {
    fun doThing()
}

// 함수형 인터페이스를 인자로 가지는 함수
fun m2(arg1: IDoingThing) {
	arg1.doThing()
}

// 람다 표현식 변환 호출
// IDoingThing 인터페이스의 doThing 을 람다 표현식으로 재정의 한거처럼 표현됩니다.
m2 {
    println("Doing something")
}
  • `함수형 인터페이스`는 단일 메서드를 가지는 인터페이스를 일컫습니다.
  • Kotlin 에서는 위와 같은 `함수형 인터페이스`에 대해 람다 표현식으로 대체할 수 있습니다.
728x90
    sggnology
    sggnology
    하늘은 파란색이니까 내 삶도 파란색이길 ㅎㅎ

    티스토리툴바