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) возвращает последовательность выражения, содержащую ith до jпараметр th.

В процедурах с опцией hold, args возвращает параметры без дальнейшей оценки. Используйте context или eval осуществлять последующую оценку. Смотрите Пример 2.

procname ( args()) возвращает символьный вызов функции текущей процедуры с оцененными аргументами.

Присвоение значений к формальным параметрам процедуры изменяет результат args. См. пример 4. args(0) остается неизменным.

Примеры

Пример 1

Этот пример демонстрирует различные способы использования 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)

Пример 2

args не оценивает возвращенные параметры в процедурах с опцией hold. Используйте context достигнуть этого:

f := proc()
  option hold;
begin
  args(1), context(args(1))
end_proc:
delete x, y: x := y: y := 2: f(x)

Пример 3

Мы используем args к параметрам доступа процедуры с произвольным числом аргументов:

f := proc() begin
  args(1) * _plus(args(2..args(0)))
end_proc:
f(2, 3), f(2, 3, 4)

Пример 4

Присвоение значений к формальным параметрам влияет на поведение args. В следующем примере, args возвращает значение 4, который присвоен в процедуре, а не значении 1, который является аргументом вызова процедуры:

f := proc(a) begin a := 4; args() end_proc:
f(1)

Параметры

iJ

Положительные целые числа

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

args(0) возвращает неотрицательное целое число. Все другие вызовы возвращают произвольный объект MuPAD® или sequence из таких объектов.

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

Области MuPAD

Функции MuPAD