Зачем нужны enum, если есть строковые константы?
Какой самый главный смысл и отличие enum от строковой константы.
const val NEW = "new"
const val PAID = "paid"
const val SHIPPED = "shipped"
const val CANCELLED = "cancelled"
и
enum class OrderStatus {
NEW,
PAID,
SHIPPED,
CANCELLED
}
какая разница между этими двумя конструкциями? Максимум что я вижу, это красивое перечисление чего-то и удобство использования. Все, больше ничего! Можете пожалуйста объяснить мне разницу или преимущества использования enum?
Ответы (2 шт):
фактически enum - это перечисление числовых констант, которые в отличие от строковых занимают сильно меньше места и дополнительно могут оптимизироваться компилятором. Соответственно, enum-ы используются для оптимизации кода, и дополнительно enum-ы бывает использовать удобней, нежели отдельные константы
Перечислимы тип (enum) — это в первую очередь договор. Договор между двумя программистами, один из которых пишет функцию, а другой использует. Для первого это гарантия того, что ему не передадут лишнее неизвестное значение, а для второго подсказка о том, что можно передать. Правильно подобранные названия в перечислении могут заменить документацию.