Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
2023.1.0 - 日本語


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とは互換性がありません. その理由は, 値に対応する名前(すなわち, keys) が 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))

参照

  • varargout — 出力変数リストの引数の数を可変にする
  • argn — 関数コールの入力/出力引数の数を返す
  • function — 関数定義をオープンする
  • list — Scilab オブジェクトおよびリスト関数定義
Report an issue
<< tree2code Functions varargout >>

Copyright (c) 2022-2024 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Mon May 22 12:43:16 CEST 2023