Dictionary Value

> コレクション > コレクションのタイプ > Dictionary Value

 

   

値とコレクション - クイック ナビゲーション

3ds Max 2017.1 Update 以降で使用可能: 辞書はキー/値のペアのコレクションで、連想配列ともいいます。キー型には名前、文字列、または整数が使用できます。特定の辞書のキー型は辞書を作成したときに指定され、常に同じになります。値型は問われません。

辞書は for ループ内での反復をサポートします。ループ内では、各要素が DataPair として処理されます。各 DataPair にはキー(v1)、値(v2)が含まれ、さらに #keyvalue1_name#valuevalue2_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 の辞書では、実際のキーの値の型に IntegerIntegerPtr、または 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>

辞書に関連付けられた内部メモリを解放します。実質的には、辞書からすべての項目が削除されます。