- Справка Scilab
- Функции
- Встроенные и внешние
- Libraries
- profiling
- argn
- bytecode
- code2str
- comp
- deff
- edit
- exec
- execstr
- fun2string
- funcprot
- function
- функции
- getd
- head_comments
- listfunctions
- macr2lst
- macr2tree
- макрос
- macrovar
- mode
- перегрузка
- sciargs
- str2code
- tree2code
- varargin
- varargout
- bytecodewalk
- recompilefunction
Please note that the recommended version of Scilab is 2026.0.0. This page might be outdated.
See the recommended documentation of this function
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 >> |