嗨,我在主 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 以前没有见过的变量名,并且会抛出异常错误。