안녕하세요, 저는 나중에 일부 다운스트림 JSL 스크립트에 "포함"을 수행하는 기본 JSL 스크립트에 "기본 이름은 here(1)"입니다. 이러한 다운스트림 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;
그러나 Names Default to 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이 이전에 볼 수 없었던 변수 이름을 생성하고 예외 오류를 발생시킵니다.