2
У меня есть список карт, и я хочу получить определенную карту в списке и вернуть ее значение для заданного ключа. Я уверен, что есть что-то фундаментальное, чего я не хватает, но я не могу сделать эту работу. У меня несколько неудачных попыток:Groovy: Найти/вернуть значение карты по ключу в списке карт
void "find map by key in a list of maps"() {
given: "a list of maps"
List favorites = [
[fruit: 'apple'],
[color: 'yellow'],
[activity: 'reading']]
when:
String favoriteColor = favorites.each {
it.find { key, value ->
key == 'color'
return value
}
}
// String favoriteColor = favorites.each { it['color'] }
// String favoriteColor = favorites.find { it.key == 'color' }
// String favoriteColor = favorites.collect { it['color'] }
// String favoriteColor = favorites*.get('color')
// String favoriteColor = favorites*.get('color').value
// String favoriteColor = favorites.collect { it['color'] }.value as String
// String favoriteColor = favorites.find { it['color'] }.value as String
then:
favoriteColor == 'yellow'
}
Есть ли чистый способ сделать эту работу?
'color'' ключевых ==» - это ничего не делать. –
@OliverCharlesworth это делается в контексте 'find' закрытия –
@tim_yates - Только как подразумеваемый' return' - это замыкание имеет явный 'return'. –