値 > コレクション > コレクションのタイプ > Dictionary Value |
3ds Max 2017.1 Update 以降で使用可能: 辞書はキー/値のペアのコレクションで、連想配列ともいいます。キー型には名前、文字列、または整数が使用できます。特定の辞書のキー型は辞書を作成したときに指定され、常に同じになります。値型は問われません。
辞書は for ループ内での反復をサポートします。ループ内では、各要素が DataPair として処理されます。各 DataPair にはキー(v1)、値(v2)が含まれ、さらに #key の value1_name、#value の value2_name が含まれます。
例 |
d = Dictionary #(#ss, 1) #(#tt, 2) for ele in d do print ele |
結果 |
Dictionary #name ss:1 tt:2 (DataPair key:#ss value:1) (DataPair key:#tt value:2) OK |
Dictionary Value クラスは、永続グローバル変数内で指定できます。シーン ファイルをロードするときに辞書を完全に復元するには、辞書内のすべての値を永続グローバル変数として指定できる必要があります。
コンストラクタ
Dictionary() -- empty dictionary of type #name Dictionary (#integer | #name | #string) -- empty dictionary of the specified type Dictionary {#(key, value)}+ -- one or more two-value arrays Dictionary {key:value}+ -- one or more explicit key:value pairs Dictionary {(DataPair key value)} -- one or more DataPair objects
辞書は、配列と DataPair といった複数のタイプを一度に使用して構成できますが、キー型は常に同じである必要があります。
辞書の既定のキー型は #name です。辞書のコンストラクタで DataPairs が使用されている場合、キー型は最初の DataPair のキーの値の型になります。残りのすべての DataPairs は同じキーの値の型を含む必要があります。辞書のコンストラクタで配列が使用されている場合、キー型は最初の配列の要素 1 の値の型になります。残りのすべての配列は、同じ要素 1 の値の型を含む必要があります。キーワード引数が使用されている場合、これらのキー型は #name になります。 型が #integer の辞書では、実際のキーの値の型に Integer、IntegerPtr、または Integer64 のいずれかを指定でき、交換可能です。
プロパティ
<dictionary>.count : Integer, read-only
辞書内の項目数
<dictionary>.type read-only
辞書の型(有効な型は #name、#string、#integer)。
<dictionary>.keys : Array, read-only
辞書のキーの配列。注: この配列を変更しても、辞書に影響はありません。
演算子
<dictionary>[key]
key の値を取得します。キーのエントリがない場合は、値として undefined が返されます。
<dictionary>[key] = <value>
キーの値を設定します。キーに既存のエントリがなくてもかまいません。
メソッド
GetDictValue <dictionary> <key >
key に基づいて辞書から値を取得します。キーのエントリがない場合は、値として undefined が返されます。
SetDictValue <dictionary> <key > <value>
key に基づいて、辞書の既存のエントリの値を設定します。キーのエントリがない場合は、何も起こりません。
PutDictValue <dictionary> <key > <value> putOnlyIfNew:<bool> -- defaults false
キーに基づいて辞書に値を格納します。
putOnlyIfNew が true の場合は、キーに既存のエントリがない場合のみ値が追加されます。putOnlyIfNew が false の場合は、キーに既存のエントリがある場合も値が追加されます。エントリがある場合は、その値が設定されます。
RemoveDictValue <dictionary> <key >
key に基づいて辞書の既存のエントリを削除します。キーのエントリがない場合は、何も起こりません。
HasDictValue <dictionary> <key >
指定した key の既存のエントリが辞書内にあるかどうかを返します。
GetDictKeys <dictionary>
辞書内のキー値の配列を返します。
GetDictKeyType <dictionary>
辞書のキーの型(#name、#string、または #integer)を返します。
copy <dictionary> [#nomap]
辞書のシャロー コピーを作成します。他のコレクション型と異なり、copy() は常に辞書のシャロー コピーを作成します。#nomap オプションは実際には不要です。
free <dictionary>
辞書に関連付けられた内部メモリを解放します。実質的には、辞書からすべての項目が削除されます。