Pref
:: typeCheck
Введите проверку формальных параметров
Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.
Pref::typeCheck(Always | Interactive | None
)
Pref::typeCheck(NIL)
Pref::typeCheck()
Pref::typeCheck
определяет вид проверки типа параметров процедуры.
Определение процедуры MuPAD® может содержать формальные параметры. Существует синтаксис, чтобы присоединить спецификацию типа к этим параметрам. Если и когда проверка типа включена, типы фактических параметров проверяются по спецификациям типа, и ошибка повышена, если параметр не соответствует спецификации.
Спецификации типа используются в качестве второго параметра testtype
. Самые важные единицы являются Доменными Типами и объектами доменного Типа. С Типом определяемые пользователем типы могут быть легко добавлены к системе, чтобы расширить механизм проверки типа.
Аргументы Pref::typeCheck
могут быть:
None
Никакие параметры не проверяются.
Interactive
Параметры, вводимые в интерактивном режиме, проверяются. Это значение по умолчанию.
Always
Все формальные параметры проверяются.
Значение по умолчанию средние значения Interactive
: Когда пользователь вызовет процедуру f
, его параметры будут проверяться, но ни одна из процедур, вызванных пользователем, не вызвала процедуру, f
выполняет проверку типа.
Вызов Pref::typeCheck
без аргументов возвращает текущее значение. Аргумент NIL
сбрасывает значение по умолчанию, которое является Interactive
.
Мы задаем процедуру f
, ожидая идентификатор и целое число:
f:= proc(a : DOM_IDENT, b : DOM_INT) begin evalassign(a, b, 1) end_proc: f(a, 2)
Теперь a
имеет значение 2
, но идентификатор ожидается:
f(a, 2)
Error: Invalid object '2'. Type of argument number 1 must be 'DOM_IDENT'. Evaluating: f
delete a:
|
Типы параметра проверяются на каждый вызов. |
|
Типы параметра проверяются на интерактивные вызовы, не на “внутренние” вызовы во время вычисления. |
|
Никакие проверки типа параметра не выполнены ядром MuPAD. Явные проверки в процедурах все еще используют обычный механизм |
Ранее заданное значение
Синтаксис, чтобы протестировать параметры непосредственно (без теста в теле процедуры) является формальным параметром, сопровождаемым двоеточием и затем текстовым объектом: proc(a : DOM_IDENT, b : Type::Integer)
. Это означает: a
должен иметь тип, DOM_IDENT
и b
должны иметь тип Type::Integer
.
Обратите внимание на то, что вы не можете использовать автоматическую проверку типа аргументы, которые используются для перегрузки в процедуре.
Объекты Библиотеки типов являются обычно более общими, чем типы ядра MuPAD.