- Scilab help
- Functions
- Built-in & external
- Libraries
- profiling
- argn
- bytecode
- bytecodewalk
- comp
- deff
- edit
- exec
- execstr
- fun2string
- funcprot
- function
- functions
- getd
- head_comments
- listfunctions
- macr2lst
- macr2tree
- macro
- macrovar
- mode
- overloading
- recompilefunction
- sciargs
- tree2code
- varargin
- varargout
- code2str
- str2code
Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
See the recommended documentation of this function
varargin
入力引数リストの引数の数を可変にする
説明
最後の入力引数がvarargin
となる関数は
入力引数リストに示した数よりも多くの入力引数を指定して
コールすることができます.
varargin
キーワードよりも後に渡された入力引数は,
関数内ではvarargin
という名前のリストとして取得することが
できます.
varargin
キーワードが形式的な入力引数リストの中で
n
番目の引数と仮定すると,
関数が n-1
個未満の入力引数を指定して
コールされた場合,
varargin
リストは定義されませんが,
n-1
個の引数を指定してコールされた場合には
varargin
リストは空のリストとなります.
y= function 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)
Scilab answers: 1. 2.
foo(b=1,a=2)
Scilab answers: 1. 2.
結果は同じですが, 引数は逆になります.
例
Report an issue | ||
<< tree2code | Functions | varargout >> |