インデックスの機能
ここで、もう一度 ^PersonI と Traverse() を確認します。^PersonI には添え字を 4 つまで設定できますが、この例では、ルートの子、つまり第 1 次元を検索します。Traverse() 関数は最初の有効な添え字 “DOB” を返します。“DOB” を渡すと、次に存在する添え字 “Name” を返します。“Name” を渡すと “Phone” を返し、“Phone” を渡すと Traverse() は空文字列を返します。
Traverse() でこのレベルを検索すると、各添え字の 1 つを返します。ここに示すビューでは、“DOB”、“Name”、および “Phone” の値を 3 回ずつ繰り返します。これはエラーではなく、ポータルのグローバルの表示方法が異なるためです。配列ツリーでは、“DOB”、“Name”、“Phone” はそれぞれ 1 つのノードで構成されているからです。
このページ以降 5 ページに渡る Traverse() 例は、演習での指定により、SAMPLES ネームスペースのデータベースに少なくとも 1 人分のデータを格納してからのみ実行できます。
println "first node of ^PersonI is: ", traverse( ^PersonI("") )
println "node after ""DOB"" is: ", traverse( ^PersonI("DOB") )
println "node after ""Name"" is: ", traverse( ^PersonI("Name") )
println "node after ""Phone"" is: ", traverse( ^PersonI("Phone") )