반응형
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
- 설치
- php개발
- jquery
- Flow
- node
- 그림으로 배우는 서버구조
- php변수
- 서버
- php
- kotlininaction
- Coroutine
- 조건문
- 이클립스
- 스나이퍼팩토리
- android
- Flutter
- 변수
- 정보처리기사
- script
- kotlin2.0
- node.js
- express
- Kotlin
- ios
- 플러터
- SwiftUI
- java
- 코틀린
- 스터디
- Eclipse
Archives
- Today
- Total
mygomii
[Kotlin] 3.4 컬렉션 처리: 가변 길이 인자, 중위 함수 호출, 라이브러리 지원 본문
반응형
- vararg 키워드를 사용하면 호출 시 인자 개수가 달라질 수 있는 함수를 정의 할 수 있음
- infinx(중위) 함수 호출 구문을 사용하면 인자가 하나뿐인 메서드를 간편하게 호출 할 수 있음
- 구조 분해 선언 을 사용하면 복합적인 값을 분해해여 여러변수에 나눠 담을 수 있음
3.4.1 자바 컬렉션 API 확장
fun <T> List<T>.last(): T { /* 마지막 원소를 반환함 */}
fun Collection<Int>.max(): Int { /* 컬렉션의 최댓값을 찾음 */}
- 위 예시 처럼 확장함수로 사용 가능
3.4.2 가변 인자 함수 : 인자의 개수가 달라질 수 있는 함수 정의
- 리스트를 생성하는 함수를 호출할 대 원하는 만큼 많이 원소를 전달 할 수 있음
val list = listOf(2,3,4,5,6)
fun listOf<T>(vararg values: T): List<T> {}
- 이 함수는 호출할 때 원하는 개수만큼 여러값을 인자로 넘기면 배열에 그 값들을 넣어주는 언어 기능인 가변 길이 인자(vararg) 사용
- 이미 배열에 들어있는 원소를 가변 길이 인자로 넘길 떼도 코틀린과 자바 구문이 다름
- 자바에서는 배열을 그냥 넘기면 되지만 코틀린에서는 배열을 명시적으로 풀어 배열의 각 원소가 인자로 전달되게 해야함 → 이런 기능을 스프레드(spread) 연산자라 함
- 스프레드 연산은 배열앞에 *를 붙이기만 하면 됨
fun main(args: Array<String>) {
val list = listOf("args:", *args)
}
3.4.2 쌍(튜플) 다루기 : 중위 호출과 구조 분해 선언
val map = mapOf(1 to "One", 7 to "seven", 3 to "three")
- to 라는 단어는 kotlin키워드가 아님 이 코드는 중위 호출이라는 특별한 방식으로 to 라는 일반 메서드를 호출
- 이 to 함수는 Pair 의 인스턴스를 반환
- Pair 의 내용을 갖고 두 변수를 즉시 초기화 할 수 있음
val (number, name) = 1 to "One"
infix fun Any.to(other: Any) = Pair(this, other)
- 이런 기능을 구조 분해 선언 이라고 부름
반응형
'Kotlin' 카테고리의 다른 글
[Kotlin] 3.5 문자열과 정규식 다루기 (0) | 2025.04.01 |
---|---|
[Kotlin] 3.6 코드 깔끔하게 다듬기: 로컬 함수와 확장 (0) | 2025.04.01 |
[Kotlin] 3.3 메서드를 다른 클래스에 추가: 확장 함수와 확장 프로퍼티 (0) | 2025.03.24 |
[Kotlin] 3.2 함수를 호출하기 쉽게 만들기 (0) | 2025.03.20 |
[Kotlin] 3.1 코틀린에서 컬렉션 만들기 (0) | 2025.03.19 |