表腳本 - 完成了嗎?從另一個腳本觸發表腳本時,如何檢查表腳本是否已完成(沒有錯誤)?
不允許添加返回函數:

Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << run Script( "Bivariate" );
dt << New Script(
"test", JSL Quote(
print(1);
return(1);
),As String( 1 ));
dt << New Script(
"test2", JSL Quote(
New Namespace("myScript");
myScript:finished=0;
print(1);
myScript:finished=1;
),
As String( 1 )
);
If( Not( dt << run Script( "test" ) ),
Stop()
);
dt << run Script( "test2" );
If( Not( myScript:finished ),
Stop()
);
自動化和腳本編寫回复:表格腳本 - 完成了嗎?dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << deletescripts( "test" );
dt << New Script(
"test", JSL Quote(
if(test<0,
0 // either this is the last value from the if
,
print("ok");
1 // or this is the last value from the if
); // the if() value is either 0 or 1
), // the script's value is the last statement executed value
As String( 1 )
);
test = 37;
Show( test, dt << run Script( "test" ) ); // "ok",1
test = -42;
Show( test, dt << run Script( "test" ) ); // 0
編輯:include() 的工作方式相同。
回复:表格腳本 - 完成了嗎?哦,這麼簡單:)
謝謝@Craige_Hales
回复:表格腳本 - 完成了嗎?對於功能來說,這兩種變體之間沒有區別嗎?
testFunc1= Function({},return(1));
testFunc2= Function({},1);
show(testFunc1);
show(testFunc2);回复:表格腳本 - 完成了嗎?如果 return(1) 嵌套在 for 循環和 if 語句中,則它有一個主要優點:它返回答案,而無需以其他方式定位為最後一個計算的表達式。 C++ 中 return(1) 的實現比僅以所需表達式結束要慢;您會注意到被調用數百萬次的短函數。 所以在你的例子中我傾向於寫
testFunc2= Function({},
/*return*/ 1
);
與評論。 或者,如果清晰度更重要,請使用 return(1)。 break() 和 continue() 語句的工作原理大致相同。 為了清晰起見而使用它們,或者以不經常執行它們的方式使用它們是完美的。
回复:表格腳本 - 完成了嗎?/*return*/ 註釋是個好主意。
我已經刪除了我的“1”之一 - 因為它看起來很不必要;)
幾天后,由於沒有與刪除的“1”的直接連接,很難找出問題所在......