嗨,我在主 JSL 脚本中有一个“名称默认为此处 (1)”,它稍后会在一些下游 JSL 脚本中“包含”。其中一些下游 JSL 已加密,仅供查看。
当我运行主 JSL 脚本时,它出错了:
“名称未解析:{13} 正在访问或评估‘’,“”/*###*/”
这是一个错误吗? (JMP 14.3.0)
为什么它应该退出加密脚本?我当然不想因为使用此命令而解密其他 JSL 脚本。否则,也许有办法解决这个问题吗?我有 100 个全局变量,所以希望避免为每个变量指定一个特定的名称空间。
谢谢!打碟机
这只是一个猜测,但您可能遇到的可能是范围界定错误。当一个人使用
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 以前从未见过的变量名,并将抛出异常错误。