嗨員工
我想開始在腳本編寫中使用JMP類,但是遇到了一個不幸的行為:當給方法提供參數時,將參數視為類成員,這使類幾乎不可用,因為方法的參數取決於類成員已經使用了該變量。我發現沒有辦法強制向該方法發送全局變量或here:變量。我相信這是一個錯誤。下面的代碼重現了此行為:
define class ("aClass",
varA = .;
aMethod=method({someVar},
varA = someVar;
show(someVar);
)
);
obj=new object(aClass());
varB=3;
obj:aMethod(varB);
varA=4;
obj:aMethod(varA);
obj:aMethod(::varA);
在上面,因為varA既是全局變量又是metod變量,所以“ aMethod”在參數中只得到3而不是4。因此,行為受內部類成員名稱和全局變量名稱之間相互作用的影響。
親切的問候,
湯瑪士
我同意,它確實看起來像個錯誤。 @EvanMcCorkle @audrey_shull
解決方法是在成員變量名稱前添加m_。我已經使用該前綴或變體很長時間了,以幫助閱讀代碼的任何人理解他們在查看成員變量時的理解。