第 5 章 オブジェクトスクリプト

第 5 章 オブジェクトスクリプト

メソッドとルーチンはどちらも を使用して作成できますObjectScriptが、最新のコードのほとんどはメソッドを使用して作成されます。メソッドはクラスに含まれるため、同様のメソッドをグループ化したり、クラス参照でドキュメントを自動生成したり、 のIRISオブジェクト指向機能を使用したりできます。

routinesこれはそれが重要ではないという意味ではありません。多くの便利なシステム ユーティリティはルーチンとして記述されており、クラスがコンパイルされるときにルーチンが生成されます。

サンプルクラス

User.DemoClass以下に、 で記述されたメソッドを含む名前のサンプル クラスを示しますObjectScriptObjectScriptこの例では、いくつかの一般的なコマンド、演算子、関数を確認し、メソッド内でコードがどのように構成されているかを確認することができます。

Class User.DemoClass
{
    
    

/// Generate a random number.
/// This method can be called from outside the class.
ClassMethod Random() [ Language = objectscript ]
{
    
    
    set rand=$RANDOM(10)+1        ; rand is an integer in the range 1-10
    write "Your random number: "_rand
    set name=..GetNumberName(rand)
    write !, "Name of this number: "_name
}

/// Input a number.
/// This method can be called from outside the class.
ClassMethod Input() [ Language = objectscript ]
{
    
    
    read "Enter a number from 1 to 10: ", input
    set name=..GetNumberName(input)
    write !, "Name of this number: "_name
}

/// Given an number, return the name.
/// This method can be called only from within this class.
ClassMethod GetNumberName(number As %Integer) As %Integer [ Language = objectscript, Private ]
{
    
    
    set name=$CASE(number,1:"one",2:"two",3:"three",
        4:"four",5:"five",6:"six",7:"seven",8:"eight",
        9:"nine",10:"ten",:"other")
    quit name
}

/// Write some interesting values.
/// This method can be called from outside the class.
ClassMethod Interesting() [ Language = objectscript ]
{
    
    
    write "Today's date: "_$ZDATE($HOROLOG,3)
    write !,"Your installed version: "_$ZVERSION
    write !,"Your username: "_$USERNAME
    write !,"Your security roles: "_$ROLES
}

}

次の点に注意してください。

  • Random()Input()メソッド呼び出しメソッドGetNumberName()、このクラスのプライベートメソッドであり、クラス外から呼び出すことはできません。
  • WRITE、、、、QUITSETコマンドREADです。この言語には、変数の削除、プログラム フローの制御、デバイスの制御I/O、トランザクション (おそらくネストされた) の管理などを行うための他のコマンドも含まれています。

コマンド名は大文字と小文字を区別しませんが、慣例により実行テキストではすべて大文字で表示されます。

  • この例には 2 つの演算子が含まれています。プラス記号 ( +) は加算を実行し、アンダースコア ( _) は文字列の連結を実行します。

ObjectScript一般的に使用される演算子と、他の言語では見られないいくつかの特殊な演算子を提供します。

  • $RANDOM$CASEおよび は$ZDATE関数です。

この言語は、文字列操作、さまざまな変換、書式設定操作、数学的操作などの関数を提供します。

  • $HOROLOG$ZVERSION$USERNAMEおよび は$ROLESシステム変数です (IRISでは特殊変数と呼ばれます)。ほとんどの特殊変数には、IRIS動作環境、現在の処理ステータスなどの値が含まれています。
  • ObjectScriptコメント行、ブロック コメント、ステートメントの末尾のコメントがサポートされています。

このクラスのメソッドをターミナルでデモンストレーションとして実行できます。これらの例では、<TESTNAMESPACE>ターミナルに表示されるプロンプトです。同じ行のプロンプトに続くテキストは、入力されたコマンドです。その後の行は、システムが応答として端末に書き込む値を示しています。

TESTNAMESPACE>do ##class(User.DemoClass).Input()
Enter a number from 1 to 10: 7
Name of this number: seven
TESTNAMESPACE>do ##class(User.DemoClass).Interesting()
Today's date: 2021-07-15
Your installed version: IRIS for Windows (x86-64) 2019.3 (Build 310U) Mon Oct 21 2019 13:48:58 EDT
Your username: SuperUser
Your security roles: %All
TESTNAMESPACE>

おすすめ

転載: blog.csdn.net/yaoxin521123/article/details/132419926