このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
このトピックでは,变长度输入宗量
、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