save
, _save
Сохраните состояние идентификатора
Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.
save x1, x2, …
_save(x1, x2, …
)
В процедуре оператор “save x;
” сохраняет состояние глобального идентификатора x
.
Оператор save
сохраняет состояния идентификаторов — т.е. их значения и свойства — во время осуществления процедур. Исходное состояние идентификаторов восстанавливается, когда осуществление процедуры закончено. Это содержит, даже когда ошибка происходит.
Оператор save
должен использоваться только в теле процедуры. Это не может быть названо на интерактивном уровне.
Аргументы оператора save
оценены, как обычно. В операторе 'save x;
' символ x
должен оценить к идентификатору y
, сказать. Это - состояние идентификатора y
, который сохранен.
Оператор save
очень похож на объявление save
для процедур. Основное различие для объявления - то, что, в порядке сделать объявление, нужно знать, что имена идентификаторов сохранены заранее. Оператор save
позволяет сохранять идентификаторы, которые известны только во времени выполнения.
Оператор save
обычно используется по порядку, чтобы временно изменить свойства идентификатора, например, путем вызова функционального assume
. В конечном счете исходные свойства идентификаторов восстанавливаются, даже если ошибка происходит.
Оператор 'save x1, x2, ...;
' эквивалентен вызову функции _save(x1, x2, ...)
.
Во-первых, мы задаем свойство для идентификатора y
:
assume(y < 0)
Свойства идентификатора, сохраненного в x
, изменяются временно во время выполнения следующей процедуры p
:
p := proc(x : DOM_IDENT) begin save x; assume(x > 0); is(x > 0) end_proc:
От результата процедуры мы видим, что свойства y
были изменены во время выполнения p
:
p(y)
Однако исходные свойства были восстановлены после выхода из p
. Идентификатор y
имеет свои исходные свойства:
is(y > 0), is(y < 0)
Восстановление исходных свойств гарантируется, даже если некоторая ошибка произойдет в процедуре. Следующая процедура q
повышает ошибку после изменения идентификатора, данного x
:
q := proc(x : DOM_IDENT) begin save x; assume(x > 0); error("some error") end_proc: q(y)
Error: some error [q]
Тем не менее, исходные предположения о y
восстанавливаются:
is(y > 0), is(y < 0)
unassume(y): delete p, q:
|
Оценка символов к идентификаторам |
Пустой объект типа DOM_NULL
.