1
如果我們想要調用一個修改對象屬性的函數,除了在函數內部使用obj.property以外,還有另一種自引用的方法嗎?在Matlab類中有自清單嗎?
例(在其他語言如Java):
public void doSomething(int arg)
foobar = arg;
end
但是例如用Matlab:
classdef Foo < handle
properties
foobar = 0;
end
methods
function obj = Foo(arg)
if nargin > 0
obj.foobar = arg;
end
end
function doSomething(obj, arg)
obj.foobar = obj.foobar + arg; % Needed to reference the current object
end
end
end
隨着越來越多的特性,它可以開始顯得凌亂從寫所有的「OBJ「
我見過一些人使用」o。「(少些字符看起來好一些),但我想知道是否有更好的方法(即:不使用obj。)或者這是唯一的選擇?
謝謝!
好吧,我明白了!謝謝! :) – oppnahar
更不用說,如果你的類沒有從'handle'繼承,那麼任何打算'改變'你的對象的函數只能通過返回一個新對象來覆蓋舊對象,例如,然後可以做'obj = doSomething(obj,args)'。所以,是的,從「句柄」繼承,以便您可以「通過引用傳遞」已經是一個「作弊」,可以這麼說。 –