Skip to main content

#dim

ローカル変数のデータ型を指定し、必要に応じてその初期値を指定できます。データ型がオブジェクト・クラスの場合、IDE ではコード入力サポートが提供されます。

説明

このマクロ・プリプロセッサ指示文は、ローカル変数のデータ型を指定し、必要に応じてその初期値を指定できます。#dim は、コードを記述するための便利なオプションとして提供されています。ObjectScript は型のない言語で、変数のデータ型を宣言することも、#dim で指定されたデータ型を強制することもありません。#dim 指示文は、以下のいずれかの形式で指定できます。

#dim VariableName As DataType
#dim VariableName As DataType = InitialValue
#dim VariableName As List Of DataType
#dim VariableName As Array Of DataType

以下はその説明です。

  • VariableName には、定義する変数、またはコンマで区切られた変数のリストを指定します。

  • DataType は、VariableName のデータ型、つまりクラス名です。

  • InitialValue は、VariableName について必要に応じて指定する値です。これは SET VariableName=InitialValue と同じです。(この構文はリストや配列には使用できません)。

DataType は主に、コード入力をサポートしている IDE で使用されます。

InitialValue

  • VariableName にデータ変数のコンマ区切りのリストを指定し、DataType がデータ型クラスの場合、すべての変数が同じ値を受け取ります。以下に例を示します。

    #dim d,e,f As %String = "abcdef"

    これは以下と同じです。

      SET d = "abcdef"
      SET e = "abcdef"
      SET f = "abcdef"
  • VariableName にオブジェクト変数のコンマ区切りのリストを指定し、DataType がオブジェクト・クラスの場合、各変数に別個の OREF が割り当てられます。以下の例では、各変数に別個の OREF が割り当てられます。

    #dim j,k,l As Sample.Person = ##class(Sample.Person).%New()

    これは以下と同じです。

      SET j = ##class(Sample.Person).%New()
      SET k = ##class(Sample.Person).%New()
      SET l = ##class(Sample.Person).%New()

    ただし、As DataType 修飾を省略した場合 (一般的なユース・ケースではありません)、すべての変数が同じ OREF を受け取ります。

    #dim j,k,l = ##class(Sample.Person).%New()

    その結果は、以下と同じです。

      SET j = ##class(Sample.Person).%New()
      SET k = j
      SET l = j
  • VariableName に変数のコンマ区切りのリストを指定し、DataType がダイナミック・オブジェクト・クラスの場合、通常のオブジェクト・クラスの場合と同様に、各変数に別個の OREF が割り当てられます。以下の例では、各変数に別個の OREF が割り当てられます。

    #dim m,n,o As %DynamicObject = {"name":"Fred"}

    以下の例でも、同様です。

    #dim p,q,r As %DynamicArray = ["element1","element2"]

    ただし、As DataType 修飾を省略した場合 (一般的なユース・ケースではありません)、通常のオブジェクト・クラスと同様に、すべての変数が同じ OREF を受け取ります。

FeedbackOpens in a new tab