#22 Kotlin Koans Collections/All Any and other predicates 해설
1 소개
Kotlin 공식 레퍼런스의 Kotlin Koans Collections/All Any and other predicates의 해설 기사입니다.
Kotlin Koans를 통해 Kotlin을 배우는 사람들의 도움이 되길 바랍니다.
다만, 레퍼런스를 자력으로 읽는 힘을 기르고 싶은 분은,
곧이 기사를 보지 마십시오!
한 번 각자로 도전하고 나서, 눈에 띄게 된다고 생각합니다
2 any()/all()/count()/find()
any() : 호출자의 콜렉션의 모든 요소 중, 인수로서 건네주는 조건식을 만족하는 것이 있으면 true를 돌려준다.
all() : 호출자 컬렉션의 모든 요소가 인수로 전달하는 조건식을 충족하면 true를 반환합니다.
count(): 호출자 컬렉션의 요소 중 인수로 전달할 조건식을 만족하는 요소의 개수를 반환합니다.
find() : 호출자 컬렉션의 요소 중 인수로 전달할 조건식을 만족하는 요소의 값을 반환합니다. (조건을 만족하는 요소가 복수개 있는 경우는, 선두에 가까운 것이 반환된다.)
다음은 Kotlin koans의 예입니다.
val numbers = listOf(-1, 0, 2)
val isZero: (Int) -> Boolean = { it == 0 }
numbers.any(isZero) == true
numbers.all(isZero) == false
numbers.count(isZero) == 1
numbers.find { it > 0 } == 2
3 Collections/All Any and other predicates 해설
Kotlin Koans Collections/All Any and other predicates의 해설입니다.
수시로 본 사이트의 내용을 인용하겠습니다.
본문과 코드를 살펴보자.
Implement all the functions below using all, any, count, find.
val numbers = listOf(-1, 0, 2)
val isZero: (Int) -> Boolean = { it == 0 }
numbers.any(isZero) == true
numbers.all(isZero) == false
numbers.count(isZero) == 1
numbers.find { it > 0 } == 2
All_Any_and_other_predicates// Return true if all customers are from the given city
fun Shop.checkAllCustomersAreFrom(city: City): Boolean = TODO()
// Return true if there is at least one customer from the given city
fun Shop.hasCustomerFrom(city: City): Boolean = TODO()
// Return the number of customers from the given city
fun Shop.countCustomersFrom(city: City): Int = TODO()
// Return a customer who lives in the given city, or null if there is none
fun Shop.findAnyCustomerFrom(city: City): Customer? = TODO()
checkAllCustomersAreFrom(city: City)
는
Shop 속성 customers의 모든 요소(Customer) city가 인수로 받는 city와 일치하면 true를 반환하도록 구현합니다.
hasCustomerFrom(city: City)
는
Shop의 프로퍼티 customers의 요소(Customer)의 city 중, 인수로서 받는 city와 일치하는 것이 1개라도 true를 돌려주도록(듯이) 구현합니다.
countCustomersFrom(city: City)
는
Shop의 속성 customers 요소(Customer)의 city가 인수로 받는 city와 일치하는 개수를 반환하도록 구현합니다.
findAnyCustomerFrom(city: City)
는
Shop의 프로퍼티 customers의 요소(Customer) 중 인수로서 받는 city를 가지는 (요소의 선두의) 것을 돌려주고, 없으면 null를 돌려주도록(듯이) 구현합니다.
따라서 다음과 같은 구현이 됩니다.
All_Any_and_other_predicates// Return true if all customers are from the given city
fun Shop.checkAllCustomersAreFrom(city: City): Boolean = customers.all{ it.city == city }
// Return true if there is at least one customer from the given city
fun Shop.hasCustomerFrom(city: City): Boolean = customers.any{ it.city == city }
// Return the number of customers from the given city
fun Shop.countCustomersFrom(city: City): Int = customers.count{ it.city == city }
// Return a customer who lives in the given city, or null if there is none
fun Shop.findAnyCustomerFrom(city: City): Customer? = customers.find{ it.city == city }
4 마지막으로
다음에는 Kotlin Koans Collections/FlatMap의 해설을 하겠습니다
Reference
이 문제에 관하여(#22 Kotlin Koans Collections/All Any and other predicates 해설), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/G-o/items/45d789b4d2f573d441a2
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
any() : 호출자의 콜렉션의 모든 요소 중, 인수로서 건네주는 조건식을 만족하는 것이 있으면 true를 돌려준다.
all() : 호출자 컬렉션의 모든 요소가 인수로 전달하는 조건식을 충족하면 true를 반환합니다.
count(): 호출자 컬렉션의 요소 중 인수로 전달할 조건식을 만족하는 요소의 개수를 반환합니다.
find() : 호출자 컬렉션의 요소 중 인수로 전달할 조건식을 만족하는 요소의 값을 반환합니다. (조건을 만족하는 요소가 복수개 있는 경우는, 선두에 가까운 것이 반환된다.)
다음은 Kotlin koans의 예입니다.
val numbers = listOf(-1, 0, 2)
val isZero: (Int) -> Boolean = { it == 0 }
numbers.any(isZero) == true
numbers.all(isZero) == false
numbers.count(isZero) == 1
numbers.find { it > 0 } == 2
3 Collections/All Any and other predicates 해설
Kotlin Koans Collections/All Any and other predicates의 해설입니다.
수시로 본 사이트의 내용을 인용하겠습니다.
본문과 코드를 살펴보자.
Implement all the functions below using all, any, count, find.
val numbers = listOf(-1, 0, 2)
val isZero: (Int) -> Boolean = { it == 0 }
numbers.any(isZero) == true
numbers.all(isZero) == false
numbers.count(isZero) == 1
numbers.find { it > 0 } == 2
All_Any_and_other_predicates// Return true if all customers are from the given city
fun Shop.checkAllCustomersAreFrom(city: City): Boolean = TODO()
// Return true if there is at least one customer from the given city
fun Shop.hasCustomerFrom(city: City): Boolean = TODO()
// Return the number of customers from the given city
fun Shop.countCustomersFrom(city: City): Int = TODO()
// Return a customer who lives in the given city, or null if there is none
fun Shop.findAnyCustomerFrom(city: City): Customer? = TODO()
checkAllCustomersAreFrom(city: City)
는
Shop 속성 customers의 모든 요소(Customer) city가 인수로 받는 city와 일치하면 true를 반환하도록 구현합니다.
hasCustomerFrom(city: City)
는
Shop의 프로퍼티 customers의 요소(Customer)의 city 중, 인수로서 받는 city와 일치하는 것이 1개라도 true를 돌려주도록(듯이) 구현합니다.
countCustomersFrom(city: City)
는
Shop의 속성 customers 요소(Customer)의 city가 인수로 받는 city와 일치하는 개수를 반환하도록 구현합니다.
findAnyCustomerFrom(city: City)
는
Shop의 프로퍼티 customers의 요소(Customer) 중 인수로서 받는 city를 가지는 (요소의 선두의) 것을 돌려주고, 없으면 null를 돌려주도록(듯이) 구현합니다.
따라서 다음과 같은 구현이 됩니다.
All_Any_and_other_predicates// Return true if all customers are from the given city
fun Shop.checkAllCustomersAreFrom(city: City): Boolean = customers.all{ it.city == city }
// Return true if there is at least one customer from the given city
fun Shop.hasCustomerFrom(city: City): Boolean = customers.any{ it.city == city }
// Return the number of customers from the given city
fun Shop.countCustomersFrom(city: City): Int = customers.count{ it.city == city }
// Return a customer who lives in the given city, or null if there is none
fun Shop.findAnyCustomerFrom(city: City): Customer? = customers.find{ it.city == city }
4 마지막으로
다음에는 Kotlin Koans Collections/FlatMap의 해설을 하겠습니다
Reference
이 문제에 관하여(#22 Kotlin Koans Collections/All Any and other predicates 해설), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/G-o/items/45d789b4d2f573d441a2
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
val numbers = listOf(-1, 0, 2)
val isZero: (Int) -> Boolean = { it == 0 }
numbers.any(isZero) == true
numbers.all(isZero) == false
numbers.count(isZero) == 1
numbers.find { it > 0 } == 2
// Return true if all customers are from the given city
fun Shop.checkAllCustomersAreFrom(city: City): Boolean = TODO()
// Return true if there is at least one customer from the given city
fun Shop.hasCustomerFrom(city: City): Boolean = TODO()
// Return the number of customers from the given city
fun Shop.countCustomersFrom(city: City): Int = TODO()
// Return a customer who lives in the given city, or null if there is none
fun Shop.findAnyCustomerFrom(city: City): Customer? = TODO()
// Return true if all customers are from the given city
fun Shop.checkAllCustomersAreFrom(city: City): Boolean = customers.all{ it.city == city }
// Return true if there is at least one customer from the given city
fun Shop.hasCustomerFrom(city: City): Boolean = customers.any{ it.city == city }
// Return the number of customers from the given city
fun Shop.countCustomersFrom(city: City): Int = customers.count{ it.city == city }
// Return a customer who lives in the given city, or null if there is none
fun Shop.findAnyCustomerFrom(city: City): Customer? = customers.find{ it.city == city }
다음에는 Kotlin Koans Collections/FlatMap의 해설을 하겠습니다
Reference
이 문제에 관하여(#22 Kotlin Koans Collections/All Any and other predicates 해설), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/G-o/items/45d789b4d2f573d441a2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)