您好,我在主 JSL 脚本中有一个“名称默认为此处(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 以前未见过的变量名称,并将引发异常错误。