Kotlin에서의 any
함수는 컬렉션에 대해 사용되며, 컬렉션 내의 원소 중 하나라도 주어진 조건을 만족하면 true
를, 그렇지 않으면 false
를 반환합니다.
함수의 정의:
public inline fun <T> Iterable<T>.any(predicate: (T) -> Boolean): Boolean
T
는 컬렉션의 원소 타입을 의미합니다.predicate
는 각 원소에 대해 실행될 함수로, 조건을 만족하면true
를, 그렇지 않으면false
를 반환합니다.
유용한 사용 시나리오:
상품 리스트가 있고, 이 중에 특정 조건을 만족하는 상품이 하나라도 있는지를 확인하는 상황을 생각해봅시다. 예를 들면, 재고가 없는 상품이 하나라도 있는지, 특정 가격 이상의 상품이 있는지 등의 조건을 검사할 때 any
함수를 유용하게 사용할 수 있습니다.
예시 코드:
data class Product(val name: String, val price: Double, val inStock: Boolean)
fun main() {
val products = listOf(
Product("Laptop", 1200.0, true),
Product("Mouse", 15.0, true),
Product("Keyboard", 50.0, false)
)
// 재고가 없는 상품이 하나라도 있는지 확인
val hasOutOfStockProduct = products.any { !it.inStock }
println("Is there any product out of stock? $hasOutOfStockProduct") // 출력: Is there any product out of stock? true
// 가격이 $100 이상인 상품이 하나라도 있는지 확인
val hasExpensiveProduct = products.any { it.price >= 100 }
println("Is there any product priced over $100? $hasExpensiveProduct") // 출력: Is there any product priced over $100? true
}
코드 설명:
Product
데이터 클래스는 상품을 나타내며,name
(이름),price
(가격),inStock
(재고 유무) 프로퍼티를 가지고 있습니다.products
리스트에는 3개의 상품 샘플이 포함되어 있습니다.- 첫 번째
any
함수는inStock
프로퍼티가false
인 상품, 즉 재고가 없는 상품이 있는지를 확인합니다. - 두 번째
any
함수는price
프로퍼티가 $100 이상인 상품이 있는지를 확인합니다.
이처럼 Kotlin의 any
함수는 간단하게 컬렉션 내의 원소 중에서 특정 조건을 만족하는 것이 하나라도 있는지를 빠르게 확인할 때 유용합니다.
728x90
'Language > Kotlin' 카테고리의 다른 글
Kotlin Companion Object에 대해 (0) | 2023.09.20 |
---|---|
Kotlin의 'All' 함수에 대해 (0) | 2023.09.15 |
[Kotlin Basic]let함수에 대해 (0) | 2023.09.15 |
그래들 설정 settings.gradle.kts에 대해 (0) | 2023.09.13 |
DSL (Domain-Specific Language)이란? | feat. Kotlin DSL, build.gradle.kts 예시 코드) (0) | 2023.09.13 |