Именованные значения

Виды предопределенных имен

MATLAB® поддерживает два вида предопределенных имен:

  • Постоянные свойства

  • Перечисления

Постоянные свойства

Используйте свойства константы, когда необходимо создать набор связанных значений константы, которые могут принадлежать различным типам (числовым значениям, символьным строкам и так далее). Задайте свойства с постоянными значениями путем установки свойства Constant атрибут. Ссылка на свойства константы по имени всякий раз, когда вам нужен доступ к этому конкретному значению.

Дополнительные сведения см. в разделе «Определение свойств классов с постоянными значениями».

Перечисления

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

Можно вывести классы перечисления из других классов, чтобы наследовать операции суперкласса. Например, если вы задаете класс перечисления, который подклассифицирует числовой класс MATLAB, подобный double или int32класс перечисления наследует все математические и реляционные операции, которые MATLAB задает для этих классов.

Использование перечислений вместо символьных строк для представления значения, такого как цвета ('red'), может привести к более читаемому коду, потому что:

  • Можно сравнить представителей перечисления с == вместо использования strcmp

  • Перечисления поддерживают информацию о типах, в то время как char векторы делают нет. Например, передав char векторная 'red' функции означает, что каждая функция должна интерпретировать, что 'red' означает. Если вы задаете красный цвет как перечисление, фактическое значение 'red' может изменяться (от [1 0 0] на [.93 .14 .14], для примера) без обновления каждой функции, которая принимает цвета, как вы бы, если бы вы определили цвет как char векторная 'red'.

Задайте перечисления путем создания enumeration блок в определении класса.

Дополнительные сведения см. в разделе «Определение классов перечисления».

Методов для определения перечислений

Перечисления позволяют вам задавать имена, которые представляют сущности, полезные для вашего приложения, не используя числовых значений или символьных строк. Все перечисления поддерживают операции по обеспечению равенства и неравенства. Поэтому, switch, if, и несколько функций сравнения, таких как isequal и ismember работа с представителями перечисления.

Можно задать классы перечисления наиболее полезными для приложения способами, как описано в следующих разделах.

Простые перечисленные имена

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

Смотрите WeekDays класс в разделах «Класс перечисления» и «Задать методы в классах перечисления».

Перечисления со встроенным поведением классов

Классы перечисления, которые подклассируют встроенные классы MATLAB, наследуют большую часть поведения этих классов. Для примера - класс перечисления, производный от double класс наследует математические, реляционные и заданные операции, которые работают с переменными класса.

Перечисления не поддерживают двоеточие (:) оператор, даже если суперкласс это делает.

Перечисления со свойствами для данных представителя

Классы перечисления, которые не подклассируют встроенные в MATLAB числовые и логические классы, могут задавать свойства. Эти классы могут задавать конструкторы, которые задают уникальные значения свойств каждого представителя.

Конструктор может сохранять входные параметры в значениях свойств. Для примера, a Color класс может задать Red цвет представителя перечисления с тремя значениями (красный, зеленый, синий):

enumeration
   Red (1,0,0)
end

Похожие темы