Scala У программистов есть несколько опций при определении перечислений:
- Используйте Scala Перечисление
- Мимические перечисления с использованием закрытых объектов Scala.
- Используйте Scalaz Enum
- Использовать Перечисление Java
При исследовании лучших практик в отношении перечислений в Scala я наткнулся на сообщение Google под названием Enumerations should DIE, а также this, в котором выявлена потенциальная проблема с использованием класса Scala Enumeration
. Обе эти ссылки внесли отрицательную тень над классом Scala Enumeration
.
Вариант 2 выглядит как большая работа, а в отношении варианта 3 я еще не использовал библиотеку Scalaz, поэтому мне было бы интересно узнать, что у других было с помощью Scalaz
Enum
. Последний вариант заключается в взаимодействии с Java, который я стараюсь избегать, поскольку мне нравится использовать пуристский подход в моем программировании Scala.
Пункт этого сообщения состоит в том, чтобы использовать опыт сообщества, чтобы детализировать контекст (ы), когда один из вариантов был бы предпочтительнее другого, а также в каком контексте (-ах) использовал бы конкретный вариант, который был бы неправильным или может вызвать серьезные проблемы, чтобы можно было принять обоснованное решение при выборе одного варианта над другим. Я не ищу мнения, а скорее конкретный контекст использования, когда один вариант лучше, чем другой (ы); мнения, скорее всего, закрывают этот пост, поэтому, пожалуйста, избегайте этого.