Name

dict — 辞書(連想配列)クラス

Description

キーと値(任意クラスのオブジェクト)からなるペアを要素として保持する コンテナクラスである. 値には,オブジェクトの実体ではなく, オブジェクトへの参照が保持される(Section 2.10, “メモリ管理とオブジェクトの寿命”参照). 同じキーを持つ要素を複数登録することはできない.

キーから関連する値を得る検索操作は高速に行える. keys()メソッドで返される要素の順序や, 検索操作の計算量オーダーは,実装に依存している [14]dictオブジェクトは 辞書定義リテラルで作成できるほか, コンストラクターで作成することもできる.

Method

at

any at( string arg );

argで指定されたキーを持つ要素を検索し, キーと関連付けられている値を返す. 要素が見つからなかった場合は,例外が発生する.

[Note] Note

配列要素への参照記法と同じであり, そちらを使用したほうが簡略である.

keys

list keys();

保持している全キーからなるリストを返す. 返されるリストの要素はstringオブジェクトからなっている. 返されるリスト内のキーの順序は実装に依存する.

remove

void remove( string arg );

argで指定したキーを持つ要素を削除する. キーが存在しない場合は何も行われない.

set

any set( string arg1 , any arg2 );

新たなキーarg1と 値arg2のペアからなる要素を追加する. すでに同じキーを持つ要素が登録されていた場合は その要素が削除された上で追加が行われる.

[Note] Note

配列要素への参照記法と同じであり, そちらを使用したほうが簡略である.

size

integer size();

現在保持している要素の数を返す.

values

list values();

保持している全値からなるリストを返す. 返されるリスト内の要素の順序は実装に依存する.

Class method

dict

dict dict();

空の辞書オブジェクトを作成する コンストラクター.

[Note] Note

指定した要素を含む辞書オブジェクトを作成したい場合は, 辞書定義リテラルの記法を用いる.



[14] 現在の実装は平衡二分木によっており,検索はO(n), keys()が返す要素の順番は辞書順にソートされている.