Skip to main content

拡張参照

InterSystems IRIS® データ・プラットフォームでは、サーバ上で実行されるすべてのコードはネームスペース内で実行されます。"ネームスペースとデータベース" を参照してください。ObjectScript は、他のネームスペースの特定の種類の項目を参照するための構文である、拡張参照をサポートしています。

概要

拡張参照とは他のネームスペースにあるエンティティへの参照のことです。ネームスペース名は引用符で囲んだ文字列リテラル、ネームスペース名に解決する変数、暗黙的なネームスペース名、または現在のネームスペースを指定するプレースホルダである NULL 文字列 ("") として指定できます。

すべての拡張参照は名前によって明示的に、もしくは NULL 文字列のプレースホルダ指定により、現在のネームスペースを指定できます。

タイプ

拡張参照には、以下の 3 つのタイプがあります。

  • 拡張グローバル参照 : 他のネームスペースのグローバル変数を参照します。以下の構文形式がサポートされます。

    ^["namespace"]global
    ^|"namespace"|global
    

    詳細は、"拡張グローバル参照" を参照してください。

  • 拡張ルーチン参照 : 他のネームスペースのルーチンを参照します。

    • DO コマンド、$TEXT 関数、およびユーザ定義関数は次の構文形式をサポートしています。

      |"namespace"|routine
      
    • JOB コマンドは、次の構文形式をサポートしています。

      routine|"namespace"|
      routine["namespace"]
      routine:"namespace"
      

    これらのすべての場合において、参照の開始には ^ (キャレット) 文字を使用し、指定したエンティティが (ラベルやオフセットではなく) ルーチンであることを示します。このキャレットはルーチン名の一部ではありません。例えば、DO ^|"SAMPLES"|fibonacci は、SAMPLES ネームスペースに置かれている fibonacci という名のルーチンを呼び出します。WRITE $$fun^|"SAMPLES"|house コマンドは、SAMPLES ネームスペースに置かれている、ルーチン house のユーザ定義関数 fun() を呼び出します。

  • 拡張 SSVN 参照 : 他のネームスペースの構造化システム変数 (SSVN) を参照します。以下の構文形式がサポートされます。

    ^$["namespace"]ssvn
    ^$|"namespace"|ssvn
    

    詳細は、^$GLOBAL^$LOCK、および ^$ROUTINE 構造化システム変数を参照してください。

関連項目

FeedbackOpens in a new tab