Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Français - Português - 日本語
Справка Scilab >> Функции > varargin

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.
        

Результат одинаковый, но аргументы были переставлены.

Примеры

function exampl(a, varargin)
    [lhs,rhs]=argn(0)
    if rhs>=1 then
        disp(varargin)
    end
endfunction

exampl(1)
exampl()
exampl(1,2,3)
l=list('a',%s,%t);
exampl(1,l(2:3))

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

  • argn — Возвращает количество входных/выходных аргументов в вызове функции
  • function — открывает определение функции
  • list — объект Scilab'а и функция определения списка
  • varargout — переменное число аргументов в списке выходных аргументов
Scilab Enterprises
Copyright (c) 2011-2015 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Wed Jun 15 08:48:33 CEST 2016