Вопросы с тегом «enum»

Enum (также перечисление) - это тип данных, состоящий из набора именованных значений, называемых элементами, членами или перечислителями типа. Имена перечислителей обычно являются идентификаторами, которые действуют в языке как константы и часто предопределены с подразумеваемым порядком.

69
Зачем вам хранить перечисление в БД?

Я видел ряд вопросов, таких как этот , спрашивающих совета о том, как хранить перечисления в БД. Но мне интересно, зачем ты это делаешь. Итак, допустим, что у меня есть сущность Personс genderполем и Genderперечислением. Тогда в моей личной таблице есть пол столбца. Помимо очевидной причины...

60
Использование перечисляемых областей для битовых флагов в C ++

enum X : int(С #) или enum class X : int(C ++ , 11) представляет собой тип , который имеет скрытое внутреннее поле , intкоторый может содержать любое значение. Кроме того, Xв перечислении определен ряд предопределенных констант . Можно привести перечисление к его целочисленному значению и наоборот....

38
Является ли расточительным создание новой таблицы базы данных вместо использования типа данных enum?

Предположим, у меня есть 4 вида услуг, которые я предлагаю (они вряд ли будут часто меняться): тестирование дизайн программирование Другие Предположим, у меня есть 60-80 реальных услуг, каждая из которых подпадает под одну из вышеуказанных категорий. Например, «сервис» может быть «Тестовая...

32
Зачем нам нужны перечисления в динамически типизированных языках?

Я читал некоторый код здесь и увидел, что enum используется для хранения имен тегов html. Почему мы когда-либо должны это делать? Какую выгоду я получу от этой стратегии? Я знаю, насколько полезны перечисления в скомпилированных или статически типизированных языках, но когда я вижу перечисления в...

32
Как представить (перечислить) типы в публичном API

Я работаю над простым API-интерфейсом, который хочу использовать для собственного клиента и который будет открыт для публики в будущем. У меня есть объекты «Предмет», которые могут иметь разные «типы». Тип является C "typedef enum", на данный момент у меня есть: typedef enum { ItemTypeBool,...

17
Когда перечисления НЕ являются запахом кода?

дилемма Я читал много лучших практических книг по объектно-ориентированным практикам, и почти в каждой прочитанной мной книге была часть, в которой говорится, что перечисления - это запах кода. Я думаю, что они пропустили ту часть, где они объясняют, когда перечисления действительны. Поэтому я ищу...

17
Создают ли перечисления хрупкие интерфейсы?

Рассмотрим пример ниже. Любое изменение в перечислении ColorChoice влияет на все подклассы IWindowColor. Имеют ли перечисления тенденцию вызывать хрупкие интерфейсы? Есть ли что-то лучше, чем enum для большей полиморфной гибкости? enum class ColorChoice { Blue = 0, Red = 1 }; class IWindowColor {...

15
Следует ли проверять значения перечисления с помощью модульных тестов?

Если у вас есть только перечисление со значениями (нет методов, которые можно было бы сделать в Java), и это перечисление является частью бизнес-определения системы, следует ли писать для него модульные тесты? Я думал, что они должны быть написаны, даже если они могут показаться простыми и...

14
Можно ли пойти против названий all-caps для перечислений, чтобы упростить их представление String?

Несколько раз я видел, как люди используют заглавные или даже строчные имена для перечисления констант, например: enum Color { red, yellow, green; } Это делает работу с их строковой формой простой и легкой, например, если вы хотите throw new IllegalStateException("Light should not be " + color +...

14
оператор switch - обработка случая по умолчанию, когда он не может быть достигнут

Если я использую оператор switch для обработки значений из перечисления (принадлежащего моему классу) и у меня есть регистр для каждого возможного значения - стоит ли добавлять код для обработки случая «по умолчанию»? enum MyEnum { MyFoo, MyBar, MyBat } MyEnum myEnum = GetMyEnum(); switch (myEnum)...

14
Каковы недостатки реализации синглтона с перечислением Java?

Традиционно синглтон обычно реализуется как public class Foo1 { private static final Foo1 INSTANCE = new Foo1(); public static Foo1 getInstance(){ return INSTANCE; } private Foo1(){} public void doo(){ ... } } С помощью перечисления Java мы можем реализовать синглтон как public enum Foo2 {...

12
Плохо ли включать все перечисления в один файл и использовать его в нескольких классах?

Я начинающий разработчик игр, я работаю над случайными инди-играми, и какое-то время я занимался чем-то, что поначалу казалось плохой практикой, но я действительно хочу получить ответ от некоторых опытных программистов здесь. Допустим, у меня есть файл с именем, в enumList.hкотором я объявляю все...

12
Не правильно ли использовать флаги для «группировки» перечислений?

Насколько я понимаю, [Flag]перечисления обычно используются для вещей, которые можно комбинировать, когда отдельные значения не являются взаимоисключающими . Например: [Flags] public enum SomeAttributes { Foo = 1 << 0, Bar = 1 << 1, Baz = 1 << 2, } Если какое - либо...

11
Лучше использовать строки или int для ссылки на перечисления за пределами Java-части системы?

В моей работе обсуждалась возможность использования перечислений в Java. Коллега утверждал, что при использовании перечислений на стороне сервера, когда это необходимо, мы должны использовать строку для ссылки на него (например, при отправке данных с JS на сервер или при хранении в базе данных),...

11
Enum с большим количеством логических свойств

В настоящее время я работаю над веб-приложением, в котором нам часто нужно настроить логику сервера на основе страницы, которая будет возвращена пользователю. Каждой странице присваивается четырехбуквенный код страницы, и эти коды страниц в настоящее время перечислены в классе как статические...

11
Является ли хорошей практикой иметь специальное значение «ALL» в перечислении

Я разрабатываю новый сервис в среде микросервисов. Это REST сервис. Для простоты предположим, что путь: / historyBooks И метод POST для этого пути создает новую книгу истории. Давайте предположим, что книга по истории охватывает одну или несколько эпох в истории. Для краткости предположим, что у...

11
Синхронизация перечисления и таблицы

Я делаю программу, которая будет публиковать данные в базе данных, и я столкнулся с шаблоном, который, я уверен, знаком: короткая таблица наиболее вероятных (очень вероятных) фиксированных значений, которые служат перечислением. Итак, предположим, что следующая таблица называется Status: Положение...