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 |
Tags
- 코틀린 코루틴의 정석
- 티스토리챌린지
- MySQL
- CKA
- aws
- kotlin
- 공부
- minikube
- Linux
- kotlin spring
- AI
- Pinpoint
- kotlin querydsl
- AWS EKS
- mysql 튜닝
- Spring
- Kubernetes
- 기록으로 실력을 쌓자
- 오블완
- 정보처리기사 실기
- 정보처리기사 실기 기출문제
- CKA 기출문제
- CloudWatch
- 정보처리기사실기 기출문제
- IntelliJ
- Java
- Elasticsearch
- PETERICA
- kotlin coroutine
- APM
Archives
- Today
- Total
피터의 개발이야기
[Kotlin] Kotlin의 스프레드 연산자 (Spread Operator) 이해하기 본문
반응형
ㅁ 들어가며
Kotlin의 스프레드 연산자(*)는 배열이나 컬렉션의 요소를 개별 인자로 전달할 때 유용하게 사용되는 기능이다. 이 연산자를 통해 코드를 더 간결하고 읽기 쉽게 만들 수 있다.
ㅁ 기본 사용법
val numbers = arrayOf(1, 2, 3, 4, 5)
println(*numbers) // 출력: 1 2 3 4 5
ㅇ 스프레드 연산자는 배열이나 컬렉션 앞에 별표(*)를 붙여 사용한다.
ㅁ 함수 호출에서의 사용
fun sum(vararg numbers: Int): Int = numbers.sum()
val numbers = intArrayOf(1, 2, 3, 4, 5)
println(sum(*numbers)) // 출력: 15
ㅇ 여러 인자를 받는 함수에 배열이나 컬렉션의 요소를 개별 인자로 전달할 때 유용하다.
ㅁ 배열 결합하기
val firstArray = intArrayOf(1, 2, 3)
val secondArray = intArrayOf(4, 5, 6)
val combinedArray = intArrayOf(*firstArray, *secondArray)
println(combinedArray.contentToString()) // 출력: [1, 2, 3, 4, 5, 6]
ㅇ 두 개 이상의 배열을 하나로 결합할 때도 스프레드 연산자를 사용할 수 있다.
ㅁ 컬렉션에서의 사용
val list1 = listOf(1, 2, 3)
val list2 = listOf(4, 5, 6)
val combinedList = listOf(*list1.toTypedArray(), *list2.toTypedArray())
println(combinedList) // 출력: [1, 2, 3, 4, 5, 6]
ㅇ List나 Set 같은 컬렉션에서도 스프레드 연산자를 사용할 수 있다.
ㅇ 컬렉션을 스프레드할 때는 toTypedArray()를 사용해 배열로 변환해야 한다.
ㅁ 스프레드의 성능 주의사항
ㅇ 큰 배열이나 컬렉션을 스프레드할 때는 성능에 주의해야 한다.
ㅇ 스프레드 연산자는 배열을 복사하기 때문에 메모리 사용량이 증가할 수 있다.
ㅇ 성능이 중요한 경우, 다른 방법을 고려하는 것이 좋다.
ㅁ 마무리
Kotlin의 스프레드 연산자는 배열이나 컬렉션을 다룰 때 매우 유용한 도구다. 이를 통해 코드를 더 간결하고 표현력 있게 작성할 수 있으며, 특히 함수 호출이나 배열 조작 시 큰 도움이 된다. 하지만 성능 측면에서의 고려사항을 잊지 말고, 적절한 상황에서 사용하는 것이 중요하다.
ㅁ 함께 보면 좋은 사이트
ㅇ Kotlin - Operators and special symbols
ㅇ Kotlin - Variable number of arguments
ㅇ Spread Operator: Passing arrays into vararg functions
반응형
'Programming > Kotlin' 카테고리의 다른 글
[Kotlin]JPA의 더티 체킹 (Dirty Checking) (0) | 2024.07.28 |
---|---|
[Kotlin] QueryDSL와 MapStruct를 사용하여 DTO에서 필요한 부분만 업데이트하기 (0) | 2024.07.27 |
[Kotlin] Resilience4j로 서킷브레이커 패턴 구현하기 (2) | 2024.07.24 |
[Kotlin] Kotlin Spring에서 API 요청 시 응답 후 비동기 처리, 코루틴 비동기처리 (0) | 2024.07.23 |
[Kotlin] Entity list에서 id 추출하기 (0) | 2024.07.22 |
Comments