관리 메뉴

피터의 개발이야기

[Kotlin] Kotlin의 스프레드 연산자 (Spread Operator) 이해하기 본문

Programming/Kotlin

[Kotlin] Kotlin의 스프레드 연산자 (Spread Operator) 이해하기

기록하는 백앤드개발자 2024. 7. 26. 10:10
반응형

ㅁ 들어가며

 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

 

반응형
Comments