prog::getOptions

Получите и проверьте опции в рамках процедуры

Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.

Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразуют Notebook MuPAD в Live скрипты MATLAB.

Синтаксис

prog::getOptions(n, arguments, allOptions, <ErrorOnUnexpected>, <optionTypes>)

Описание

prog::getOptions названный в рамках процедуры собирает и проверяет все опции из списка аргументов процедуры вызова.

Когда вы пишете свою собственную процедуру, prog::getOptions позволяет вам встроить набор и верификацию всех опций процедуры. Когда пользователь вызывает вашу процедуру, prog::getOptions сканирования, которые все аргументы и обеспечивают структуре данных, которая содержит все значения опции. Смотрите Пример 1.

prog::getOptions функция возвращает список, который содержит таблицу всех допустимых опций наряду с их значениями и списка неожиданных аргументов. Для ожидаемых опций, prog::getOptions возвращает следующие значения:

Если опция может иметь только TRUE или FALSE значения, пользователь вашей процедуры может обеспечить имя опции, вместо того, чтобы обеспечить пару значения опции. Если пользователь предоставляет возможность, не задавая ее значение, prog::getOptions возвращает булево значение TRUE для той опции. Смотрите Пример 2.

prog::getOptions возвращает список с двумя компонентами: таблица ожидаемых опций и списка неожиданных аргументов. Можно получить доступ к компонентам того списка отдельно при помощи оператора индекса (см. _index). Смотрите пример 3.

По умолчанию, prog::getOptions функция не делает ошибки, когда это находит неожиданный аргумент. Чтобы переключиться на издание ошибок на неожиданных аргументах, используйте параметр ErrorOnUnexpected. Смотрите пример 4.

Процедура, которая включает prog::getOptions должен принять аргументы в следующем порядке: сначала обязательные параметры, и затем все опции. prog::getOptions функция позволяет вам задать номер n из аргумента, от которого функция начинает проверять опции. prog::getOptions функция принимает что первый n - 1 аргументы являются параметрами и, поэтому, не проверяет их. Смотрите Пример 5.

Параметр optionTypes позволяет вам задать приемлемые типы для значений опции. Можно задать приемлемые типы для некоторых или всех ожидаемых возможностей, предоставленных в allOptions таблица. Смотрите Пример 6.

Первые три параметра prog::getOptions NАргументы, и allOptions) требуются. ErrorOnUnexpected и optionTypes являются дополнительными. Необходимо обеспечить параметры prog::getOptions использование порядка, показанного в разделе Calls этой страницы. Поэтому, если вы хотите использовать пятый параметр optionTypes, также необходимо явным образом использовать четвертый параметр ErrorOnUnexpected.

Второй параметр prog::getOptions аргументы функции, список всех аргументов вашей процедуры. prog::getOptions сканирует аргументы, обеспеченные в том списке. Несмотря на то, что prog::getOptions принимает любой список как второй аргумент, процедура вызова всегда должна предоставлять список всех своих аргументов (и параметры и опции), чтобы избежать потенциальных ошибок. Синтаксис [ args()] предоставляет список всех аргументов процедуры вызова. Смотрите Пример 7.

Примеры

Пример 1

Чтобы встроить набор опции и шаг верификации в вашу процедуру, вызовите prog::getOptions функция в рамках той процедуры. Протестировать поведение prog::getOptions, создайте функциональный f это вызывает prog::getOptions отсканировать и проверить аргументы f. Например, создайте функциональный f это принимает только одну опцию All:

f := () -> prog::getOptions(1, [args()], table(All = TRUE)):

prog::getOptions возвращает список. Первая запись списка является таблицей, содержащей все ожидаемые опции и их значения. Вторая запись является списком неожиданных аргументов. Например, вызов функции f() не содержит неожиданных аргументов:

f();

Вызов функции f(Unexpected) содержит неожиданный аргумент Unexpected:

f(Unexpected);

Пример 2

Когда пользователи вызывают процедуру, которая включает prog::getOptions, они могут задать новые значения для любой из допустимых опций той процедуры. В этом случае, prog::getOptions возвращает новые значения. Если пользователь использует опцию, не задавая ее значение, prog::getOptions возвращает булево значение TRUE для той опции. Если пользователь явным образом не использует ожидаемую опцию, prog::getOptions возвращает значение по умолчанию той возможности, предоставленной в allOptions таблица. Например, в вызове функции f(Proc = op, Warning), prog::getOptions функция возвращает следующие значения:

  • Если пользователь вводит значение для опции, prog::getOptions возвращает то значение.

  • Если пользователь не использует опцию в вызове процедуры, prog::getOptions возвращает значение по умолчанию для той опции.

f := () -> prog::getOptions(1, [args()],
                               table(All = FALSE,
                                     Proc = id,
                                     Warning = FALSE))[1]:
f(Proc = op, Warning)

Пример 3

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

f := () -> prog::getOptions(1, [args()],
                                  table(All = TRUE))[1]:
g := () -> prog::getOptions(1, [args()],
                                  table(All = TRUE))[2]:
ExpectedOptions = f(Unexpected);
UnexpectedOptions = g(Unexpected)

Пример 4

Когда пользователь предоставляет неожиданные аргументы к вашей процедуре, prog::getOptions может собрать эти аргументы и возвратить их как список. Кроме того, prog::getOptions может остановиться и выдать ошибку, когда это находит первый неожиданный аргумент. Чтобы выдать ошибку вместо того, чтобы перечислить неожиданные аргументы, используйте TRUE как четвертый параметр prog::getOptions:

f := () -> prog::getOptions(1, [args()], table(All = TRUE), TRUE):
f(Unexpected)
Error: Invalid argument number 1.
  Evaluating: f

Пример 5

prog::getOptions функция не отличает параметры от опций автоматически. Если некоторые аргументы процедуры являются параметрами, исключают их из верификации опции. В противном случае, prog::getOptions функционируйте перечисляет те параметры как неожиданные аргументы. Например, prog::getOptions списки 1 и 2 в качестве неожиданных аргументов вызова функции f(1, 2, All):

f := () -> prog::getOptions(1, [args()], table(All = TRUE))[2]:
UnexpectedOptions = f(1, 2, All);

Если вы устанавливаете prog::getOptions функционируйте к ошибке на неожиданных аргументах, она будет ошибка на параметрах также:

f := () -> prog::getOptions(1, [args()], table(All = TRUE), TRUE):
f(1, 2, All);
Error: Invalid argument number 1.
  Evaluating: f

Исключить первый n параметры функции от верификации опции, предоставьте номеру n + 1 в качестве первого аргумента prog::getOptions. В вызове функции задайте весь n параметры, прежде чем вы зададите опции. Например, чтобы не проверять первые два аргумента в вызов функции f(1, 2, All), используйте следующий синтаксис:

f := () -> prog::getOptions(3, [args()], table(All = TRUE))[2]:
UnexpectedOptions = f(1, 2, All);

Когда вы используете prog::getOptions, необходимо обеспечить все обязательные параметры сначала, и затем предоставить возможности. Следующий синтаксис не работает потому что prog::getOptions принимает что первые два аргумента в вызове функции f(1, All, 2) параметры, и номер 2 является опцией:

f := () -> prog::getOptions(3, [args()], table(All = TRUE), TRUE):
f(1, All, 2);
Error: Invalid argument number 3.
  Evaluating: f

Пример 6

Чтобы задать приемлемые типы значений опции, используйте таблицу, которая содержит приемлемые опции как индексы и их ожидаемые типы как записи. Например, укажите что All опция должна иметь тип DOM_BOOL, и Proc опция должна иметь тип Type::Function:

f:= () -> prog::getOptions(1, [args()],
                              table(All = TRUE, Proc = id),
                              TRUE,
                              table(All = DOM_BOOL,
                                    Proc = Type::Function)
                              )[1]:

Теперь опции могут иметь только значения правильных типов:

f(All = FALSE, Proc = id)

При попытке использовать значение неправильного типа, функция выдает ошибку:

f(All = FALSE, Proc = 0)
Error: Invalid type of argument number 2.
  Evaluating: f

Кроме того, можно задать и использовать процедуру в выполнении проверки типа. Для аргументов допустимого типа процедура должна возвратить TRUE или выражение, которое может быть выполнено к TRUE bool функция:

f := () -> prog::getOptions(
                    2, [args()],
                    table(File = ""), TRUE,
                    table(File = (X -> contains({DOM_STRING,
                                                 DOM_INT},
                                                 type(X))))
                           )[1]:
f(FALSE, File = 0), f(TRUE, File = "test.log")

Пример 7

Используя arguments разделить опции от параметров не рекомендуется, потому что это может привести к ошибкам. Всегда используйте первый параметр prog::getOptions задавать, сколько параметров вы имеете. Несмотря на то, что прогр:: getOptions принимает любой список как второй аргумент, лучшая практика состоит в том, чтобы использовать только args(). Следующий пример demostrates то использование arguments разделить опции от параметров может привести к неправильному сообщению об ошибке. Несмотря на то, что это сообщение об ошибке правильно указывает, что одна из опций имеет значение неправильного типа, индекс аргумента является неправильным:

f := () -> prog::getOptions(1, [args(2..args(0))],
                            table(Option1 = TRUE), 
                            TRUE,
                            table(Option1 = DOM_BOOL)):
f(x, Option1 = 1, Option2)
Error: Invalid type of argument number 1.
  Evaluating: f

Чтобы получить правильное сообщение об ошибке для этого примера, используйте первый параметр prog::getOptions исключить x от верификации опции:

f := () -> prog::getOptions(2, [args()], table(Option1 = TRUE), 
                            TRUE, table(Option1 = DOM_BOOL)):
f(x, Option1 = 1, Option2)
Error: Invalid type of argument number 2.
  Evaluating: f

Параметры

n

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

arguments

Список всех аргументов процедуры. Используйте args() получить доступ ко всем аргументам.

allOptions

table это содержит все приемлемые опции как индексы и их значения по умолчанию как записи: table(Option = defaultValue)

ErrorOnUnexpected

Булев постоянный TRUE или FALSE. Если значением является TRUE, prog::getOptions выдает ошибку, когда это находит неожиданный аргумент. Если значением является FALSE, prog::getOptions собирает все неожиданные аргументы и возвращает их как список. По умолчанию, ErrorOnUnexpected = FALSE.

optionTypes

table это содержит приемлемые опции как индексы и их ожидаемые типы как записи: table(Option = optionType). Здесь optionType должен быть допустимый второй аргумент testtype функционируйте или процедура, которая возвращает TRUE (или выражение, которое может быть выполнено к TRUE bool функция) для аргументов допустимого типа. Если вы хотите задать optionTypes, также необходимо явным образом задать ErrorOnUnexpected.

Возвращаемые значения

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

Смотрите также

Функции MuPAD

Для просмотра документации необходимо авторизоваться на сайте