# 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

`y= function 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)

O Scilab responde: 1. 2.

foo(b=1,a=2)

O Scilab responde: 1. 2.

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

## Exemplos

    deff('exampl(a,varargin)',['[lhs,rhs]=argn(0)'
                              'if rhs>=1 then disp(varargin),end'])
    exampl(1)
    exampl()
    exampl(1,2,3)
    l=list('a',%s,%t);
    exampl(1,l(2:3))

## Ver Também

- function
- varargout
- list