5
假設我有下面的類:MATLAB - set/get訪問struct的字段?
classdef myClass
properties
Globals = struct(...
'G1', 1, ...
'G2', 2 ...
);
end
methods
% methods go here
end
end
我用的結構,因爲有那些結構等性能。
有什麼辦法可以爲結構體的字段提供setter嗎?天真提供
function obj = set.Globals.G1(obj, val)
obj.Globals.G1 = val; % for example
end
不起作用。
這是我想到的,但我想我會問。我在Globals類中遇到的問題是我有幾個「對等」類,它們都繼承了Globals結構的要求,但是結構中的內容可能會有所不同。有沒有辦法創建動態setter/getters? 我剛剛學會了如何使用動態屬性 –
@ strictlyrude27:如果超類定義了屬性,那麼它也必須定義set/get方法。然而,這些set/get方法可以調用例如稱爲「setGlobal」和「getGlobal」的方法,該方法又可以被重載。就我個人而言,我已經在類似情況下使用了動態屬性,但經驗表明,除非您確實需要動態屬性,否則最好不要冒險發現Matlab錯誤。 – Jonas
所有我想要做的動態setters是做類型檢查 - 我的意圖是把這個對象作爲一個結構,而不是更多.. –