致命的 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 支援人員?