Указание параметров для параметров

Как явно указать допустимые настройки для параметра? Возьмем этот пример, например,

Options[myFunc] = {opt1 -> "SomeString"};
myFunc[OptionsPattern[]] := Print[OptionValue[opt1]];

myFunc печатает значение параметра. Если мы оценим myFunc [opt1 -> {1, 2}] , затем выводится {1, 2} . Эта функция будет печатать все, что вы установили в opt1 . У меня вопрос: как я могу убедиться, что моя функция принимает только заданное количество значений для opt1 . Мы можем начать с чего-нибудь простого, например, с String и Integer .

Чтобы лучше понять поведение, которого мы ожидаем при неправильных значениях для opt1 мы можем посмотреть, что происходит, когда мы даем неправильные значения для PlotRange в функции Plot .

enter image description here

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

В простом примере мы хотели бы получить что-то вроде:

myFunc::sometag : Value of option opt1 -> `1` is not a string or integer.

Как этого добиться?

8
задан Cœur 28 December 2018 в 05:11
поделиться