Динамическая группировкаВыбор ключей в Котлине - PullRequest
0 голосов
/ 10 ноября 2018

Я бы хотел передать динамическую keySelector моей функции groupingBy. Это возможно?

   private fun hasNumberOfIdenticalValues(hand: ArrayList<Card>, values: ArrayList<String>, limit: Int) : Boolean {
        var numberOfOccurrences : Map<String, Int> = hashMapOf()

        for(value in values) {
            numberOfOccurrences = hand.groupingBy{it.suit}.eachCount()
        }

        return true
    }

1 Ответ

0 голосов
/ 10 ноября 2018

Вы можете, вам просто нужно вернуть строку, которая будет классифицировать целое. Например, для разделения карт по цвету масти:

fun Card.color(): String {     
    return if(listof("diamonds","hearts").contains(this.suit)) 
        "red" 
    else 
        "black" 
}

for(value in values) {
    numberOfOccurrences = hand.groupingBy{it.color()}.eachCount()
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...