방명록
- [Kotlin] takeIf2023년 12월 26일 22시 25분 37초에 업로드 된 글입니다.작성자: 핀수728x90반응형
주어진 조건을 만족하는 경우 해당 객체를 반환하는 함수이다.
(만족하지 못하는 경우 null을 반환함)
takeIf는 단일 객체에 대한 필터링을 도와준다.
inline fun <T> T.takeIf(predicate: (T) -> Boolean): T?
주어진 조건 (it.age > 30) 을 만족하는 경우 해당 객체를 반환
그렇지 않은 경우 null을 반환하는 것을 확인할 수 있다.
data class Person( val name: String, val age: Int, ) fun main() { val list = listOf(Person("amy", 34), Person("john", 45), Person("tom", 27)) list.forEach { println(it.takeIf { it.age > 30 }) } /* Person(name=amy, age=34) Person(name=john, age=45) null */ }
이와 반대되는 함수로 takeUnless가 있다.
조건을 만족하지 않는 경우 값을 반환하고, 만족하는 경우 null을 반환한다.
위의 예시에서 takeUnless를 사용하면 결과는 아래와 같다.
fun main() { val list = listOf(Person("amy", 34), Person("john", 45), Person("tom", 27)) list.forEach { println(it.takeUnless { it.age > 30 }) } /* null null Person(name=tom, age=27) */ }
공부하며 작성된 글이라 잘못된 정보가 있을 수 있습니다.
말씀해주시면 수정하겠습니다. 감사합니다.
References
아래 글을 참고하여 작성 되었습니다.
Scope functions | Kotlin
kotlinlang.org
728x90반응형'pinslog > Log.daily()' 카테고리의 다른 글
[git] git stash 쓰다 식겁한 이야기 (4) 2024.07.03 [Kotlin] Kotlin Destructuring (0) 2023.12.27 [Etc.] MacOS 영상 녹화하기 (feat. 사운드 캡쳐) (0) 2023.12.13 [Kotlin] tailrec 꼬리재귀 (0) 2023.12.10 [IDE] VSCode 에서 Kotlin 시작하기 (feat. MAC OS) (0) 2023.12.08 다음글이 없습니다.이전글이 없습니다.댓글