반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- java
- php변수
- Flutter
- Flow
- 조건문
- express
- ios
- android
- SwiftUI
- Coroutine
- 설치
- php
- 그림으로 배우는 서버구조
- 서버
- kotlin2.0
- 이클립스
- 변수
- php개발
- 코틀린
- script
- jquery
- 정보처리기사
- kotlininaction
- 플러터
- node
- node.js
- 스나이퍼팩토리
- Eclipse
- Kotlin
- 스터디
Archives
- Today
- Total
mygomii
[Kotlin] 5.1 람다식과 멤버 참조 본문
반응형
- 자바 프로그래머들은 람다의 도입을 오랫동안 기다려왔고 자바8의 람다는 . 그기다림의 끝
- 람다가 왜 중요할까?
5.1.1 람다 소개: 코드 블록을 값으로 다루기
- 람다는 코드 블록을 변수에 담거나 함수 인자로 넘길 수 있음
- 함수형 프로그래밍의 핵심 개념 중 하나
val greet = { println("Hello!") }
greet() // Hello! 출력
//함수처럼 변수 greet를 호출할 수 있음.
5.1.2 람다와 컬렉션
- 컬렉션 함수(filter, map, forEach 등)와 람다를 조합하면 강력해짐
- 반복문 없이 짧고 읽기 쉬운 코드를 만들 수 있음
5.1.3 람다식의 문법
- { 매개변수 -> 본문 } 형태
- 매개변수가 하나일 땐 it 사용 가능
- 타입 생략 가능(컴파일러가 추론)
val square: (Int) -> Int = { it * it }
println(square(4)) // 16
5.1.4 현재 영역에 있는 변수 접근
- 람다는 바깥 스코프에 있는 변수를 자유롭게 참조할 수 있음 (→ 클로저)
- 값이 변경될 수도 있음
var counter = 0
val increment = { counter++ }
5.1.5 멤버 참조
- 클래스명::함수명, 객체명::함수명 형태로 사용
- 람다를 더 짧고 깔끔하게 표현할 수 있음
5.1.6 값과 엮인 호출 가능
- 객체에 묶인(바인딩된) 멤버 참조를 만들 수 있음
- 이후에 이 참조를 호출할 때마다 묶인 값을 기준으로 동작함
val number = 42
val isEqualTo42 = number::equals
println(isEqualTo42(42)) // true
println(isEqualTo42(100)) // false
반응형
'Kotlin' 카테고리의 다른 글
[Kotlin] 5.3 코틀린에서 SAM 인터페이스 정의: fun interface (0) | 2025.04.16 |
---|---|
[Kotlin] 5.2 자바의 함수형 인터페이스 사용: 단일 추상 메서드 (0) | 2025.04.14 |
[Kotlin] 4.4 object 키워드: 클래스 선언과 인스턴스 생성을 한꺼번에 하기 (0) | 2025.04.08 |
[Kotlin] 4.3 컴파일러가 생성한 메서드: 데이터 클래스와 클래스 위임 (0) | 2025.04.07 |
[Kotlin] 4.2 뻔하지 않은 생성자나 프로퍼티를 갖는 클래스 선언 (0) | 2025.04.03 |