Return コマンドと Quit コマンド
DoubleByVal クラス・メソッドでは Return を使用しています。このコマンドは、クラス・メソッドまたはルーチンの実行を終了します。Return を複数の場所に配置すると、ポイントごとに異なる条件で終了できます。Quit コマンドも同じ処理を実行します。コマンドを引数と共に使用して、クラス・メソッドから値を返すことができます。
この 2 つのコマンドは似ていますが、コマンドを使用する場合、以下の規約が推奨されています。
-
Quit は、コードの実行を終了する場合に、引数なしで使用する
-
Return は、コードの実行を終了して値を返す場合に、引数と共に使用する
ObjectScript.RightTriangle は、この規約を使用しています。Return と Quit には重要な違いがあります。この違いについては、後半で For などのループ構造を説明する際に取り上げます。
VS Code - ObjectScript
/// examples for ObjectScript Tutorial
Class ObjectScript.Examples
{
ClassMethod DoubleByVal(anynumber as %Numeric) as %Numeric
{
return anynumber * 2
}
}
Quit はクラス・メソッドまたはルーチンを抜ける用途もあります。コードを記述している間に、VS Code - ObjectScript は構文のエラーを警告します。一方、未定義の変数などの実行時エラーの場合は、実行中のコードを終了します。エラー・メッセージは、ターミナル・ウィンドウでエラーを含む行 (オフセットを追加したラベル名) に表示されます。また、USER> プロンプトは、例えば USER 2d0> に変更されます。通常の状態にプロンプトを戻すには、Q または Quit と入力します。
VS Code - ObjectScript
/// examples for ObjectScript Tutorial
Class ObjectScript.Examples
{
/// demo of <UNDEFINED> error
ClassMethod BadMethod()
{
set a = 1
set b = 2
write c
}
}
ターミナルを使用したテスト
USER>do ##class(ObjectScript.Examples).BadMethod()
write c }
^
<UNDEFINED>BadMethod+3^ObjectScript.Examples.1 *c
USER 2do>quit
USER>