嗨,工作人員
我想開始在腳本編寫中使用 JMP 類,但遇到了一個不幸的行為:向方法提供參數時,參數被視為類成員,這使得類幾乎無法使用,因為方法的參數取決於是否類成員已經使用該變數。 我發現沒有辦法強制向方法發送全局或此處:變數。 我相信這是一個錯誤。 以下程式碼重現了此行為:
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 既是全域變數又是方法變量,因此「aMethod」在參數中只得到 3 而不是 4。 因此,行為受到內部類別成員名稱和全域變數名稱之間的交互作用的影響。
親切的問候,
湯瑪斯
我同意,它看起來確實像一個錯誤。@EvanMcCorkle @奧黛麗_舒爾
解決方法是在成員變數名稱前面加上 m_ 前綴。 我長期以來一直使用該前綴或變體來幫助閱讀程式碼的人理解何時查看成員變數。