オブジェクトのプロパティを変更する関数を呼び出す場合は、関数内に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を書くことから厄介見て開始することができます。 "
私は、" .0。 "という文字を使用している人もいますが、より良い方法があるかどうかは疑問でした(obj。)これは唯一のオプションですか?
ありがとうございます!
ありがとうございます!ありがとう! :) – oppnahar
あなたのクラスが 'handle'から継承しなかった場合、あなたのオブジェクトを '変更'しようとする関数は、古いオブジェクトを上書きするために新しいオブジェクトを返すことによってのみ行うことができます。 'obj = doSomething(obj、args)'を実行できます。ですから、あなたが「参照渡し」できるように 'handle'を継承していることは、すでに「チート」です。 –