Запуск моего первого проекта с помощью Scala: рамки для покера.Два метода в одной скале
Поэтому у меня есть следующий класс
class Card(rank1: CardRank, suit1: Suit){
val rank = rank1
val suit = suit1
}
и объект Utils, который содержит два метода, которые делают почти то же самое: они подсчитывают количество карт для каждого ранга или костюм
def getSuits(cards: List[Card]) = {
def getSuits(cards: List[Card], suits: Map[Suit, Int]): (Map[Suit, Int]) = {
if (cards.isEmpty)
return suits
val suit = cards.head.suit
val value = if (suits.contains(suit)) suits(suit) + 1 else 1
getSuits(cards.tail, suits + (suit -> value))
}
getSuits(cards, Map[Suit, Int]())
}
def getRanks(cards: List[Card]): Map[CardRank, Int] = {
def getRanks(cards: List[Card], ranks: Map[CardRank, Int]): Map[CardRank, Int] = {
if (cards isEmpty)
return ranks
val rank = cards.head.rank
val value = if (ranks.contains(rank)) ranks(rank) + 1 else 1
getRanks(cards.tail, ranks + (rank -> value))
}
getRanks(cards, Map[CardRank, Int]())
}
Is я могу каким-то образом «объединить» эти два метода в одном «поле/метод-как-параметр»?
Благодаря