主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

入れ子関数での引数の数のチェック

このトピックでは,变长度输入宗量varargout输入参数个数およびnargoutを入れ子関数と共に使用する場合の考慮事項について説明します。

变长度输入宗量varargoutを使用すると,可変長の入出力引数を受け入れる関数を作成することができます。变长度输入宗量varargoutは関数名のように見えますが,これらは関数ではなく変数を指しています。複数の入れ子関数は自身を含む関数のワークスペースを共有するため,この点は重要です。

入れ子関数の宣言で变长度输入宗量またはvarargoutを使用しない場合,入れ子関数内の变长度输入宗量またはvarargoutはその外側の関数の引数を参照します。

たとえば,showArgs.mというファイルに,变长度输入宗量を使用し2つの入れ子関数をもつ関数を作成します。この入れ子関数のうち片方では变长度输入宗量を使用し,もう一方では使用しません。

函数showArgs(变长度输入宗量)nested1 (3, 4) nested2(5、6、7)函数nested1 (a, b) disp ('nested1: varargin{1}的含量') disp(变长度输入宗量{1})结束函数nested2(变长度输入宗量)disp ('nested2: varargin{1}的含量') disp(变长度输入宗量{1})结束结束

この関数を呼び出し,2つの入れ子関数の变长度输入宗量{1}の内容を比較します。

showArgs (0, 1, 2)
nested1: varargin{1}含量0 nested2: varargin{1}含量5

一方で,输入参数个数nargoutは関数です。任意の関数(入れ子関数を含む)内で输入参数个数またはnargoutを呼び出すと,その関数の引数の数が返されます。外側の関数からの输入参数个数またはnargoutの値が入れ子関数に必要な場合は,その値を入れ子関数に渡します。

たとえばshowNumArgs.mというファイルに,基本(親)関数から入れ子関数へと入力引数の個数を渡す関数を作成します。

函数showNumArgs(变长度输入宗量)disp ([showNumArgs的输入数量:int2str(输入参数个数)]);nestedFx(输入参数个数,2、3、4)函数变长度输入宗量nestedFx (n) disp ([' nestedFx的输入数量:'int2str(输入参数个数)]);disp (['其父元素的输入数量:', int2str (n)));结束结束

showNumArgsを呼び出し,親関数と入れ子関数の输入参数个数の出力を比較します。

showNumArgs (0, 1)
showNumArgs的输入数量:2对nestedFx的输入数量:4对其父节点的输入数量:2

参考

|||