varargin
переменное число аргументов в списке входных аргументов
Описание
Функция, чьим последним входным аргументом является
varargin
, может быть вызвана с
бОльшим числом входных аргументов, чем указано в списке
входных аргументов. Аргументы вызова, переданные внутрь в форме ключевого слова
varargin
затем могут быть получены внутри функции в
списке с именем varargin
.
Допустим, что ключевое слово varargin
является n
-ным аргументом в списке
формальных входных аргументов, тогда, если функция
вызывается с меньшим числом, чем n-1
,
входных аргументов, то список
varargin
не будет определён. Если же
функция вызывается с n-1
аргументами,
то список varargin
будет пустым
списком.
function y = ex(varargin)
может быть
вызвана с любым числом аргументов. Внутри функции
ex
входные аргументы могут быть
получены в varargin(i)
,
i=1:length(varargin)
.
Если же это не последний аргумент функции, то
varargin
будет обычным именем
входного аргумента без особого значения.
Общее число фактических входных аргументов даётся с
помощью argn(2)
.
Примечание
Синтаксис именованных аргументов, такой как foo(...,key=value)
,
не совместим с использованием varargin
. Причина в том, что имена
(то есть ключи), связанные со значениями, не хранятся в списке
varargin
. Рассмотрим пример:
function foo(varargin) disp([varargin(1),varargin(2)]) endfunction
--> foo(a=1, b=2) 1. 2. --> foo(b=1, a=2) 1. 2.
Результат одинаковый, но аргументы были переставлены.
Примеры
Смотрите также
Report an issue | ||
<< tree2code | Функции | varargout >> |