<?xml version="1.0" encoding="UTF-8"?>
<!--
 * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 * Copyright (C) ????-2008 - INRIA
 *
 * Copyright (C) 2012 - 2016 - Scilab Enterprises
 *
 * This file is hereby licensed under the terms of the GNU GPL v2.0,
 * pursuant to article 5.3.4 of the CeCILL v.2.1.
 * This file was originally licensed under the terms of the CeCILL v2.1,
 * and continues to be available under such terms.
 * For more information, see the COPYING file which you should have received
 * along with this program.
 *
 -->
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
          xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml"
          xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook"
          xmlns:scilab="http://www.scilab.org" xml:id="varargout" xml:lang="pt">
    <refnamediv>
        <refname>varargout</refname>
        <refpurpose>variável do número de argumentos de saída em uma lista de
            argumentos de saída
        </refpurpose>
    </refnamediv>
    <refsection>
        <title>Descrição</title>
        <para>Uma função cuja lista de argumentos de saída contém
            <literal>varargout</literal> deve ser chamada com mais argumentos de saída
            que indicado na lista de argumentos de saída. A chamada de argumentos
            passados da palavra-chave <literal>varargout</literal> em diante são
            extraídos da lista <literal>varargout</literal> definida na função.
        </para>
        <para>
            <literal>varargout = function ex()</literal> pode ser chamado com
            qualquer número de argumentos de saída. Dentro da função
            <literal>ex</literal>, argumentos de saída podem ser armazenados em
            <literal>varargout(i)</literal>.
        </para>
        <para>
            <literal>[X1,...,Xn,varargout] = function ex()</literal> também pode
            ser usado. Neste caso, as variáveis <literal>Xi</literal> devem estar
            atribuídas na função tanto quanto <literal>varargout(i)</literal>.
        </para>
        <para>
            O número total real de argumentos de saída é dado por <literal>argn(1)</literal>.
        </para>
        <note>
            <literal>varargout</literal> is by default initialized to <literal>list()</literal>.
        </note>
    </refsection>
    <refsection>
        <title>Exemplos</title>
        <programlisting role="example"><![CDATA[
function varargout = exampl()
    varargout = list(1,2,3,4)
endfunction

x = exampl()
[x, y]    = exampl()
[x, y, z] = exampl()

function [a,b,varargout]=exampl1()
    a = 'first'
    b = 'second'
    varargout = list(1,2,3,4)
endfunction

exampl1()
[a, b]  = exampl1()
[a,b,c] = exampl1()
 ]]></programlisting>
    </refsection>
    <refsection>
        <title>Ver Também</title>
        <simplelist type="inline">
            <member>
                <link linkend="argn">argn</link>
            </member>
            <member>
                <link linkend="function">function</link>
            </member>
            <member>
                <link linkend="list">list</link>
            </member>
            <member>
                <link linkend="varargin">varargin</link>
            </member>
        </simplelist>
    </refsection>
    <refsection role="history">
        <title>Histórico</title>
        <revhistory>
            <revision>
                <revnumber>6.0.0</revnumber>
                <revdescription>
                    varargout is now initialized to list() by default.
                </revdescription>
            </revision>
        </revhistory>
    </refsection>
</refentry>
