#21 Kotlin Koans Collections/Filter map 해설
1 소개
Kotlin 공식 레퍼런스의 Kotlin Koans Collections/Filter map의 해설 기사입니다.
Kotlin Koans를 통해 Kotlin을 배우는 사람들의 도움이 되길 바랍니다.
다만, 레퍼런스를 자력으로 읽는 힘을 기르고 싶은 분은,
곧이 기사를 보지 마십시오!
일단 각자 도전하고 나서 볼 수 있다고 생각합니다
2-1 map()
map() : 호출자 컬렉션의 요소를 List 형태로 반환한다. 인수로서 건네주는 함수(transform function)의 룰에 따라 List의 내용이 정해진다.
kotlin koans의 예를 인용합니다.
val numbers = listOf(1, -1, 2)
numbers.map { it * it } == listOf(1, 1, 4)
val numbers = listOf(1,-1,2)
의 부분으로 List를 생성하고 있습니다.
이 List가 map()을 호출해 람다 식 {it * it}
를 건네주고 있으므로, 호출 원래에는
각 요소가 제곱이 되었다( 1は1
, -1は1
, 2は4
가 됩니다.) List 가 돌아옵니다.
2-2 filter()
filter() : 호출자 컬렉션의 요소 중 인수로 전달하는 함수(predicate)의 조건을 만족하는 요소만의 List를 반환한다.
kotlin koans의 예를 인용합니다.
val numbers = listOf(1, -1, 2)
numbers.filter { it > 0 } == listOf(1, 2)
val numbers = listOf(1,-1,2)
의 부분으로 List를 생성하고 있습니다.
이 List 가 filter() 를 호출해 람다 식 { it > 0 }
를 건네주어, 이 조건을 채우는 요소 (1, 2)가 요소로서 포함되는 List 를 돌려줍니다.
3 Collections/Filter map 해설
Kotlin Koans Collections/Filter map 의 해설입니다.
수시로 본 사이트의 내용을 인용하겠습니다.
본문과 코드를 살펴보자.
Implement extension functions Shop.getCitiesCustomersAreFrom() and Shop.getCustomersFrom() using functions map and filter.
val numbers = listOf(1, -1, 2)
numbers.filter { it > 0 } == listOf(1, 2)
numbers.map { it * it } == listOf(1, 1, 4)
Filter_map// Return the set of cities the customers are from
fun Shop.getCitiesCustomersAreFrom(): Set<City> = TODO()
// Return a list of the customers who live in the given city
fun Shop.getCustomersFrom(city: City): List<Customer> = TODO()
getCitiesCustomersAreFrom() 은 고객(Customer) 출신의 도시(city)의 set를 반환하도록 구현합니다.
이제 각 인스턴스의 속성을 정리합시다.
Shop:name(String형), customers(List< Customer >형)
Customer : name (String 형), city (City 형), orders (List )
Shop이 getCitiesCustomersAreFrom()을 호출하면 customers 속성의 요소(Customer) city를 map()을 사용하여 List로 반환합니다.
List를 Set로 변환하기 위해 toSet()을 사용합니다.
따라서 다음과 같은 구현이 됩니다.
Filter_mapfun Shop.getCitiesCustomersAreFrom(): Set<City> = customers.map{ it.city }.toSet()
둘째,
Shop.getCustomersFrom(city: City)은 인수로 전달된 city 출신 고객(Customer)의 List를 반환합니다.
getCustomersFrom(city: City)을 호출할 때, 임의의 값이 대입된 city를 건네주어, Shop의 프로퍼티 customers가 가지는 요소(Customer)의 city에 대해 생각합니다.
Customers가 filter()를 호출하여 Customers의 각 요소(Customer)가 인수로 전달하는 함수의 조건을 충족하는지 여부를 결정하고, 만족하는 것만의 List를 반환하도록 구현합니다.
충족해야 할 조건은 Customer의 city 값과 getCustomersFrom(city: City)이 인수로 받은 city 값이 일치하는지입니다.
따라서 다음과 같은 구현이 됩니다.
Filter_mapfun Shop.getCustomersFrom(city: City): List<Customer> = customers.filter{ it.city == city }
4 마지막으로
다음은 Kotlin Koans Collections/All Any and other predicates의 해설을합니다.
Reference
이 문제에 관하여(#21 Kotlin Koans Collections/Filter map 해설), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/G-o/items/869a58bfba52814a6ff9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
map() : 호출자 컬렉션의 요소를 List 형태로 반환한다. 인수로서 건네주는 함수(transform function)의 룰에 따라 List의 내용이 정해진다.
kotlin koans의 예를 인용합니다.
val numbers = listOf(1, -1, 2)
numbers.map { it * it } == listOf(1, 1, 4)
val numbers = listOf(1,-1,2)
의 부분으로 List를 생성하고 있습니다.이 List가 map()을 호출해 람다 식
{it * it}
를 건네주고 있으므로, 호출 원래에는각 요소가 제곱이 되었다(
1は1
, -1は1
, 2は4
가 됩니다.) List 가 돌아옵니다.2-2 filter()
filter() : 호출자 컬렉션의 요소 중 인수로 전달하는 함수(predicate)의 조건을 만족하는 요소만의 List를 반환한다.
kotlin koans의 예를 인용합니다.
val numbers = listOf(1, -1, 2)
numbers.filter { it > 0 } == listOf(1, 2)
val numbers = listOf(1,-1,2)
의 부분으로 List를 생성하고 있습니다.
이 List 가 filter() 를 호출해 람다 식 { it > 0 }
를 건네주어, 이 조건을 채우는 요소 (1, 2)가 요소로서 포함되는 List 를 돌려줍니다.
3 Collections/Filter map 해설
Kotlin Koans Collections/Filter map 의 해설입니다.
수시로 본 사이트의 내용을 인용하겠습니다.
본문과 코드를 살펴보자.
Implement extension functions Shop.getCitiesCustomersAreFrom() and Shop.getCustomersFrom() using functions map and filter.
val numbers = listOf(1, -1, 2)
numbers.filter { it > 0 } == listOf(1, 2)
numbers.map { it * it } == listOf(1, 1, 4)
Filter_map// Return the set of cities the customers are from
fun Shop.getCitiesCustomersAreFrom(): Set<City> = TODO()
// Return a list of the customers who live in the given city
fun Shop.getCustomersFrom(city: City): List<Customer> = TODO()
getCitiesCustomersAreFrom() 은 고객(Customer) 출신의 도시(city)의 set를 반환하도록 구현합니다.
이제 각 인스턴스의 속성을 정리합시다.
Shop:name(String형), customers(List< Customer >형)
Customer : name (String 형), city (City 형), orders (List )
Shop이 getCitiesCustomersAreFrom()을 호출하면 customers 속성의 요소(Customer) city를 map()을 사용하여 List로 반환합니다.
List를 Set로 변환하기 위해 toSet()을 사용합니다.
따라서 다음과 같은 구현이 됩니다.
Filter_mapfun Shop.getCitiesCustomersAreFrom(): Set<City> = customers.map{ it.city }.toSet()
둘째,
Shop.getCustomersFrom(city: City)은 인수로 전달된 city 출신 고객(Customer)의 List를 반환합니다.
getCustomersFrom(city: City)을 호출할 때, 임의의 값이 대입된 city를 건네주어, Shop의 프로퍼티 customers가 가지는 요소(Customer)의 city에 대해 생각합니다.
Customers가 filter()를 호출하여 Customers의 각 요소(Customer)가 인수로 전달하는 함수의 조건을 충족하는지 여부를 결정하고, 만족하는 것만의 List를 반환하도록 구현합니다.
충족해야 할 조건은 Customer의 city 값과 getCustomersFrom(city: City)이 인수로 받은 city 값이 일치하는지입니다.
따라서 다음과 같은 구현이 됩니다.
Filter_mapfun Shop.getCustomersFrom(city: City): List<Customer> = customers.filter{ it.city == city }
4 마지막으로
다음은 Kotlin Koans Collections/All Any and other predicates의 해설을합니다.
Reference
이 문제에 관하여(#21 Kotlin Koans Collections/Filter map 해설), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/G-o/items/869a58bfba52814a6ff9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
val numbers = listOf(1, -1, 2)
numbers.filter { it > 0 } == listOf(1, 2)
Kotlin Koans Collections/Filter map 의 해설입니다.
수시로 본 사이트의 내용을 인용하겠습니다.
본문과 코드를 살펴보자.
Implement extension functions Shop.getCitiesCustomersAreFrom() and Shop.getCustomersFrom() using functions map and filter.
val numbers = listOf(1, -1, 2)
numbers.filter { it > 0 } == listOf(1, 2)
numbers.map { it * it } == listOf(1, 1, 4)
Filter_map
// Return the set of cities the customers are from
fun Shop.getCitiesCustomersAreFrom(): Set<City> = TODO()
// Return a list of the customers who live in the given city
fun Shop.getCustomersFrom(city: City): List<Customer> = TODO()
getCitiesCustomersAreFrom() 은 고객(Customer) 출신의 도시(city)의 set를 반환하도록 구현합니다.
이제 각 인스턴스의 속성을 정리합시다.
Shop:name(String형), customers(List< Customer >형)
Customer : name (String 형), city (City 형), orders (List
Shop이 getCitiesCustomersAreFrom()을 호출하면 customers 속성의 요소(Customer) city를 map()을 사용하여 List로 반환합니다.
List를 Set로 변환하기 위해 toSet()을 사용합니다.
따라서 다음과 같은 구현이 됩니다.
Filter_map
fun Shop.getCitiesCustomersAreFrom(): Set<City> = customers.map{ it.city }.toSet()
둘째,
Shop.getCustomersFrom(city: City)은 인수로 전달된 city 출신 고객(Customer)의 List를 반환합니다.
getCustomersFrom(city: City)을 호출할 때, 임의의 값이 대입된 city를 건네주어, Shop의 프로퍼티 customers가 가지는 요소(Customer)의 city에 대해 생각합니다.
Customers가 filter()를 호출하여 Customers의 각 요소(Customer)가 인수로 전달하는 함수의 조건을 충족하는지 여부를 결정하고, 만족하는 것만의 List를 반환하도록 구현합니다.
충족해야 할 조건은 Customer의 city 값과 getCustomersFrom(city: City)이 인수로 받은 city 값이 일치하는지입니다.
따라서 다음과 같은 구현이 됩니다.
Filter_map
fun Shop.getCustomersFrom(city: City): List<Customer> = customers.filter{ it.city == city }
4 마지막으로
다음은 Kotlin Koans Collections/All Any and other predicates의 해설을합니다.
Reference
이 문제에 관하여(#21 Kotlin Koans Collections/Filter map 해설), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/G-o/items/869a58bfba52814a6ff9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)