| Programming with MATLAB |
資産subsasgnメソッド
subsasgnメソッドは、subsrefメソッドと同じ代入となります。このバージョンを使って、1から始まる数値インデックスと構造体フィールド名を使ったインデックスを使ってあるオブジェクトに含まれるデータを変更することができます。外側のswitchステートメントは、インデックスが、数値、または、フィールド名のどちらかを使ったものであるかを判断するものです。内側のswitchステートメントは、インデックスを適切な値に射影します。
MATLABは、代入ステートメント(たとえば、A(i) =
val, A{i} = val, またはA.fieldname = val)を実行する場合、subsasgn
を呼びます。
function a = subsasgn(a,index,val)
% SUBSASGN 資産オブジェクト用のインデックスの代入を定義
switch index.type
case '()'
switch index.subs{:}
case 1
a.descriptor = val;
case 2
a.date = val;
case 3
a.current_value = val;
otherwise
error('Index out of range')
end
case '.'
switch index.subs
case 'descriptor'
a.descriptor = val;
case 'date'
a.date = val;
case 'current_value'
a.current_value = val;
otherwise
error('Invalid field name')
end
end
subsasgnメソッドは、二つの手法を使って資産オブジェクトデータ構造体に値を代入することができます。たとえば、ユーザは子株式オブジェクトs
s = stock('XYZ',100,25);
をもっているとします。株式クラスメソッドの中で、つぎのステートメントのどちらかを使って、descriptor
フィールドを変更できます。
s.asset(1) = 'ABC';
s.asset.descriptor = 'ABC';
子subsasgnメソッドが親 subsasgnメソッドを呼び込む方法の例題は、"株式subsasgnメソッド"を参照してください。
| 資産subsrefメソッド | 資産displayメソッド |