致命的 JMP16 错误这不是一个问题,只是让我意识到自从转向 JMP16 以来我最近在脚本中注意到的一个问题 - 也就是说,我假设是命名空间( ... )不会为已删除的命名空间返回真值,但在 JMP16.2 中会返回真值(但在 JMP14.3 中不会)
因此,以下脚本会导致 JMP16.2 崩溃:
ns = New Namespace();
ns:ns = New Namespace();
ns:ns << Delete Namespace();
Show( Is Namespace( ns:ns ) );
If( Is Namespace( ns:ns ),
ns:ns:__item__ = 4;
);
我需要将我的脚本修改为与此等效的内容才能解决该问题:
ns = New Namespace();
ns:ns = New Namespace();
ns:ns << Delete Namespace();
Show( Is Namespace( ns:ns ) );
If( Is Namespace( ns:ns ) & !Is Missing( ns:ns << Get Name ),
ns:ns:__item__ = 4;
);
自动化和脚本编写回复:致命的 JMP16 错误这里有更新吗?
听起来像是一个候选人Jmp 和 JSL 中的小陷阱...
回复:致命的 JMP16 错误其实我只是想起来为什么——命名空间存在将查看变量的值并告诉您该值是否可以代表命名空间,而是命名空间应该告诉变量是直接命名空间还是命名空间引用:
因此,此代码失败:
ns = New Namespace( "test ns" );
ns:item = "variable";
ns name = "test ns";
If( Namespace Exists( ns name ),
Show( ns name:item )
);
然而这并没有:
ns = New Namespace( "test ns" );
ns:item = "variable";
ns name = "test ns";
If( Is Namespace( ns name ),
Show( ns name:item )
);
回复:致命的 JMP16 错误哈哈,我没仔细看你的帖子!你是对的,这似乎确实有效,但我有一种模糊的感觉,因为某种原因我没有在我的代码中使用这个方法,尽管我现在不记得为什么。
回复:致命的 JMP16 错误我的意思是 Namespace Exists() ,它似乎与 Is Namespace 不同(或者也许我在这里遗漏了一些东西)
Names Default To Here(1);
Clear Log();
Delete Namespaces();
ns = New Namespace();
ns:ns = New Namespace();
Show(Namespace Exists(ns:ns), Is Namespace(ns:ns));
ns:ns << Delete Namespace();
Show(Namespace Exists(ns:ns), Is Namespace(ns:ns));
/*Namespace Exists(ns:ns) = 1;
Is Namespace(ns:ns) = 1;
Namespace Exists(ns:ns) = 0;
Is Namespace(ns:ns) = 1;*/
回复:致命的 JMP16 错误@jthi ,它适用于裸命名空间,但在提供作用域命名空间时则不然,如下所示:
ns = New Namespace();
ns:ns = New Namespace();
ns:ns << Delete Namespace();
Show( Is Namespace( ns:ns ) );
回复:致命的 JMP16 错误非常感谢您提供这些信息。 JMP 开发人员已调查并记录您发现的问题,以便可以在未来版本中纠正这些问题!
回复:致命的 JMP16 错误感谢您找到这个。 我能够复制此内容,并且已将报告提交给 JMP 支持人员进行调查。
担
JMP 产品管理。
回复:致命的 JMP16 错误不错的收获! 希望下一个 17 测试版还不算太晚。
回复:致命的 JMP16 错误Namespace Exists() 似乎对于已删除的命名空间返回 0。
回复:致命的 JMP16 错误是的,我今天也举报了。我将在此处发布任何更新 - 但我认为团队可能已经意识到这个问题。
回复:致命的 JMP16 错误是否已将此情况报告给 JMP 支持人员?