args
Доступ к параметрам процедуры
Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.
args() args(0
) args(i
) args(i .. j
)
args(0)
возвращает количество параметров текущей процедуры.
args(i)
возвращает значение i
th параметр текущей процедуры.
args
получает доступ к фактическим параметрам процедуры и может только использоваться в процедурах. Это в основном предназначается для процедур с переменным количеством аргументов, поскольку в противном случае к параметрам могут просто получить доступ их имена.
args()
возвращает последовательность выражения всех фактических параметров.
args(i..j)
возвращает последовательность выражения, содержащую i
th до j
th параметр.
В процедурах с опцией hold
args
возвращает параметры без дальнейшей оценки. Используйте context
или eval
, чтобы осуществить последующую оценку. Смотрите Пример 2.
procname ( args())
возвращает символьный вызов функции текущей процедуры с оцененными аргументами.
Присвоение значений к формальным параметрам процедуры изменяет результат args
. Cf. Пример 4. args(0)
остается неизменным.
Этот пример демонстрирует различные способы использования args
:
f := proc() begin print(Unquoted, "number of arguments" = args(0)): print(Unquoted, "sequence of all arguments" = args()): if args(0) > 0 then print(Unquoted, "first argument" = args(1)): end_if: if args(0) >= 3 then print(Unquoted, "second, third argument" = args(2..3)): end_if: end_proc:
f():
number of arguments = 0
sequence of all arguments =
f(42):
number of arguments = 1
sequence of all arguments = 42
first argument = 42
f(a, b, c, d):
number of arguments = 4
sequence of all arguments = (a, b, c, d)
first argument = a
second, third argument = (b, c)
args
не оценивает возвращенные параметры в процедурах с опцией hold
. Используйте context
, чтобы достигнуть этого:
f := proc() option hold; begin args(1), context(args(1)) end_proc:
delete x, y: x := y: y := 2: f(x)
Мы используем args
, чтобы получить доступ к параметрам процедуры с произвольным числом аргументов:
f := proc() begin args(1) * _plus(args(2..args(0))) end_proc: f(2, 3), f(2, 3, 4)
Присвоение значений к формальным параметрам влияет на поведение args
. В следующем примере args
возвращает значение 4
, который присвоен в процедуре, а не значении 1
, который является аргументом вызова процедуры:
f := proc(a) begin a := 4; args() end_proc: f(1)
|
Положительные целые числа |
args(0)
возвращает неотрицательное целое число. Все другие вызовы возвращают произвольный объект MuPAD® или sequence
таких объектов.