5
は、私は以下のクラスがあるとします。MATLAB - 構造体のフィールドにアクセス権を設定/取得しますか?
classdef myClass
properties
Globals = struct(...
'G1', 1, ...
'G2', 2 ...
);
end
methods
% methods go here
end
end
構造体である他の特性があるので、私は構造体を使用しています。
構造体のフィールドにセッターを提供する方法はありますか?丁寧に提供する
function obj = set.Globals.G1(obj, val)
obj.Globals.G1 = val; % for example
end
は機能しません。
これは私が考えたものですが、私は尋ねると思いました。私がGlobalsクラスで実行する問題は、グローバルな構造体を持つという要件をすべて継承するいくつかの "ピア"クラスがありますが、構造体内には何が異なるかがあります。動的セッター/ゲッターを作成する方法はありますか? ダイナミックプロパティの使用方法を学んだばかりです。 –
@ strictlyrude27:スーパークラスがプロパティを定義する場合は、set/getメソッドも定義する必要があります。しかし、これらのset/getメソッドは、例えば、 「setGlobal」および「getGlobal」と呼ばれるメソッドは、オーバーロードされる可能性があります。個人的には、私は似たような場合に動的プロパティを使いましたが、実際に動的プロパティが必要な場合を除いて、Matlabのバグを発見するリスクはない方が良いことが実証されています。 – Jonas
ダイナミックセッターでやりたかったのは、型チェックを行うことでした。私の目的はこのオブジェクトを構造体として扱うことです。 –