Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

ListBuild

要素のリストを作成します。

Synopsis

ListBuild(element[,element][,element][...])

引数

element 任意の式、または式のコンマ区切りのリスト。element 内にコンマを使用する場合は、その element を文字列として引用符で囲みます。

概要

ListBuild は、1 つ以上の式を取得し、各式に対し 1 つの要素を持つリストを返します。

要素式を省略すると、値が未定義の要素が生成されます。例えば、以下の ListBuild 文は、3 つの要素を持つリストを生成しますが、2 番目の要素は定義されていません。2 番目の要素を List 関数で参照すると、NULL VALUE エラーが生じます。

Println List(ListBuild("Red",,"Green"),2)

引数を指定しないで ListBuild 関数を呼び出すと、データ値が未定義の要素を 1 つ含むリストが返されます。

List の要素自体が list である場合もあります。例えば、以下の文は 3 つの要素を持つリストを生成します。このうち 3 番目の要素が "Walnut,Pecan" という 2 つの要素を含むリストです。

MyList = ListBuild("Apple","Pear",ListBuild("Walnut","Pecan"))
Println List(MyList,3)

複数の要素を持つリストは、文字をエンコードする表示されないリストを含みます。

二項連結演算子を使用して 2 つのリストを連結すると、別のリストが生成されます。例えば、以下の 2 つの ListBuild 文は同じリスト "A,B,C" を作成します。

x = ListBuild("A","B") & ListBuild("C")
y = ListBuild("A","B","C")
If x=y Then
  Println "Lists are identical"
Else
  Println "Lists not identical"
End If

ただし、文字列をリストとして連結しても、有効なリストにはなりません。

ListBuild は、最適化されたバイナリ表現を使用してデータ要素を格納します。このため、リスト・データで期待されているような等価テストが利用できない場合もあります。他のコンテキストでは同等と見なされるデータが、異なる内部表現を持つこともあります。例えば、ListBuild(1)ListBuild(“1”) は同じではありません。詳細は、以下の例を参照してください。

x = ListBuild("1","2")
y = ListBuild(1,2)
If x=y Then
  Println "Lists are identical"
Else
  Println "Lists not identical"
End If

Caché のリストは、ListFromString 関数を使用して作成することも、List 関数を使用して別のリストから抽出することもできます。

以下の例は ListBuild 関数の使用法を示しています。

myList = ListBuild("Red","Blue","Green","Yellow")
color4 = List(myList,4) 'returns value of the 4th element
Println color4
sublist = List(myList,2,3) 'returns the 2nd and 3rd elements as a list
Println List(sublist,1) 'prints Blue

複数の要素を持つリストは、文字をエンコードする表示されないリストを含むため、Println は、単一のリスト項目を表示するためだけに使用してください。

関連項目

FeedbackOpens in a new tab