mustBeMember

Подтвердите то значение, член заданного набора

Синтаксис

mustBeMember(A,B)

Описание

пример

mustBeMember(A,B) выдает ошибку, если A не является членом множества значений, заданного B. Множество значений, заданное A, должно быть чувствительным к регистру, точным совпадением. mustBeMember не возвращает значение.

При использовании mustBeMember как функция валидации свойства гарантируйте, что значение свойства по умолчанию является членом набора.

Эта функция принимает пользовательские объекты, если класс объекта реализует следующий метод:

Примеры

свернуть все

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

Подтвердите это вектор символа, 'red' является членом набора векторов символов, 'yellow', 'green' и 'blue'.

A = 'red';
B = {'yellow','green','blue'};
mustBeMember(A,B)
Error using mustBeMember (line 14)
Value must be a member of this set
    'yellow'
    'green'
    'blue'

Валидация перестала работать, потому что 'red' не является членом набора. MATLAB® возвращает сообщение об ошибке, перечисляющее позволенные значения.

Ограничьте значения свойств к определенному множеству значений.

Этот класс ограничивает значение Prop1 быть или 'yellow', 'green' или 'blue'.

classdef MyClass
   properties
      Prop1 {mustBeMember(Prop1,{'yellow','green','blue'})} = 'yellow'
   end
end

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

Создайте объект и присвойте значение его свойству.

obj = MyClass
obj.Prop1 = 'red';
Error setting 'Prop1' property of 'MyClass' class:
Value must be a member of this set
    'yellow'
    'green'
    'blue'

Валидация перестала работать, потому что 'red' не является членом набора. MATLAB возвращает сообщение об ошибке, перечисляющее позволенные значения.

Входные параметры

свернуть все

Значение, чтобы подтвердить, заданный как скаляр или массив одного из следующего:

  • logical, string, char или любой числовой класс

  • Логический массив, массив строк, cellstr или числовой массив

  • Классы MATLAB та реализация ismember

При использовании mustBeMember как блок проверки допустимости свойства этот аргумент должен быть именем свойства, заданным без кавычек.

Пример: PropName {mustBeMember (PropName, {'высоко', 'носитель', 'низко'})} = 'низко'

Типы данных: единственный | удваиваются | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | логический | char | строка
Поддержка комплексного числа: Да

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

  • logical, string, char или любой числовой класс

  • Логический массив, массив строк, cellstr или числовой массив

  • Классы MATLAB та реализация ismember

Пример: Свойство с массивом ячеек символьных векторов: PropName {mustBeMember (PropName, {'желтый', 'зеленый', 'синий'})} = 'синий'

Пример: Свойство с массивом строк: PropName {mustBeMember (PropName, ["желтый", "зеленый", "синий"])} = "синий"

Типы данных: единственный | удваиваются | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | логический | char | строка
Поддержка комплексного числа: Да

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Введенный в R2017a

Была ли эта тема полезной?