В моей игре у меня два игрока, поэтому я определил typealias пары, который должен указывать, что у меня есть две вещи одного типа, и .first
принадлежит первому игроку, а .second
принадлежит второму игроку:
typealias PlayerPair<A> = Pair<A, A>
Также я определил этот перечислимый класс
enum class PlayerNumber {
One,
Two
}
Теперь я хотел бы добавить оператор (в качестве функции расширения) для доступа к таким элементам, как этот
myPair[Player.One]
Это мой подход, но он не работает
operator fun PlayerPair.get(i: PlayerNumber) = when (i) {
PlayerNumber.One -> PlayerPair.first
PlayerNumber.Two -> PlayerPair.sexond
}
Добавление ветки else устраняет одну ошибку, но я не понимаю, почему это необходимо.
Другая ошибка - 'Oneожидается тип аргумента для typealias PlayerPair = Pair '.
Но я не могу понять, что это значит в этом контексте.