이 포스팅은 Kotlin in Action, 드미트리 제메로프 & 스베트라나 이사코바, 에이콘출판사(2017)을 읽고 개인 학습용으로 정리한 글입니다.
data class Person(val name: String, var age: Int)
fun main() {
val people1 = listOf(Person("Alice", 20), Person("Bob", 21), Person("Charlie", 23))
val people2 = setOf(Person("Alice", 20), Person("Bob", 21), Person("Charlie", 23))
//이름이 Alice인 사람 찾기
people1.findPeople{p -> p.name == "Alice"}
people2.findPeople{p -> p.name == "Alice"}
//나이가 20살 초과인 사람 찾기
people1.findPeople{p -> p.age > 20}
people2.findPeople{p -> p.age > 20}
}
사람의 이름과 나이를 저장하는 data class Person이 있다.
Person 타입 객체들을 저장하는 코틀린 컬렉션 타입의 people1, people 2이 있다.
main 함수를 실행했을 때 아래와 같은 출력이 나오도록 findPeople을 구현하시오.
start search
Person(name=Alice, age=20)
end search
start search
Person(name=Alice, age=20)
end search
start search
Person(name=Bob, age=21)
Person(name=Charlie, age=23)
end search
start search
Person(name=Bob, age=21)
Person(name=Charlie, age=23)
end search
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
//Person 타입 객체들을 저장하는 코틀린 컬렉션 타입 확장
inline fun Collection<Person>.findPeople(predicate: (Person) -> Boolean){
println("start search")
forEach{
if(predicate(it)) println(it)
}
println("end search\n")
}