嗨,我在主 JSL 腳本中有一個“默認名稱為 here(1)”,該腳本稍後會在一些下游 JSL 腳本中“包含”。其中一些下游 JSL 被加密,僅供查看。
當我運行主 JSL 腳本時,它會出錯:
"名稱未解析:{13} 正在訪問或評估 '' ,"" /*###*/"
這是一個錯誤嗎? (JMP 14.3.0)
為什麼要退出加密腳本?我當然不想因為使用此命令而解密其他 JSL 腳本。否則,有沒有辦法解決這個問題?我有 100 個全局變量,因此希望避免為每個全局變量指定一個特定的名稱空間。
謝謝!DJ
這只是一個猜測,但您可能遇到的可能是范圍錯誤。當一個人使用
Names Default To Here( 1 );
JMP 從字面上創建了一個名為 Here 的命名空間,並將所有未作用域的變量從
Variable Name = 1;
到
Here:Variable Name = 1;
範圍問題可以提出一個祖父範圍語法。
以前沒有指定 Names Default to Here(1) 的 JSL,以下賦值語句是等效的
Y=1;
::Y=9;
Show(Y, ::Y);
.這個JSL的結果是:
Y = 9;
Y = 9;
但是,指定默認為 Here(1) 的名稱
Names Default To Here( 1 );
Y = 1;
::Y = 9;
Show( Y, ::Y, here:Y );
給出結果
Y = 1;
Y = 9;
here:Y = 1;
我在這個話題上的所有漫無邊際都讓我猜測在某個地方是你的加密代碼,一個雙冒號,“::”範圍已被指定,然後在沒有指定雙冒號的情況下引用。在指定 Names Default to Here(1) 的情況下,不帶雙冒號的引用會產生一個 JSL 以前沒有見過的變量名,並且會拋出異常錯誤。