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 - Русский - 日本語
Ajuda do Scilab >> Funções > varargin

varargin

variável do número de argumentos de saída em uma lista de argumentos de entrada

Descrição

Uma função cujo último argumento de entrada é varargin pode ser chamada com mais argumentos de entrada que os indicados pela lista de argumentos de entrada. Os argumentos de chamada passados da palavra-chave varargin em diante podem ser recuperados em uma lista chamada varargin.

Suponha que a palavra-chave varargin é o n-ésimo argumento da lista de argumentos de entrada formal, então, se a função é chamada com n-1 argumentos de entrada, a lista varargin não é definida. Se a função for chamada com n-1 argumentos, então varargin é uma lista vazia

function y= ex(varargin) pode ser chamada com qualquer número de argumentos de entrada. Dentro da função ex argumentos de entrada podem ser recuperados em varargin(i), i=1:length(varargin)

Se não for o último argumento de entrada da função, varargin é um argumento de entrada normal, sem nenhum significado especial.

O número de argumentos de entrada real é dado por argn(2).

Observações

Sintaxe de argumento nomeada, como foo(...,key=value), é incompatível com o uso de varargin. A razão é que os nomes (i.e. keys) associados aos valores value não são armazenados na lista varargin. Considere por exemplo:

function foo(varargin)
    disp([varargin(1),varargin(2)])
endfunction
            -->foo(a=1,b=2)
            
            1.    2.
            
            -->foo(b=1,a=2)
            
            1.    2.
        

O resultado é o mesmo, mas os argumentos foram invertidos.

Exemplos

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))
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:34:59 CEST 2016