The dictionary stores key-value pairs, where the key is a string, and the value can be of any type. Key-value pairs can be added or removed dynamically, making the dictionary a good general purpose container object.
obj object; obj @handle;
// Initialize with a list dictionary dict = {{'one', 1}, {'object', object}, {'handle', @handle}};
// Examine and access the values through get or set methods ... if( dict.exists('one') ) { // get returns true if the stored type is compatible with the requested type bool isValid = dict.get('handle', @handle); if( isValid ) { dict.delete('object'); dict.set('value', 1); } }
// ... or through index operators int val = int(dict['value']); dict['value'] = val + 1; @handle = cast<obj>(dict['handle']); if( handle is null ) @dict['handle'] = object;
// Delete everything with a single call dict.deleteAll();
The dictionary object is a reference type, so it's possible to use handles to the dictionary object when passing it around to avoid costly copies.
= assignment
The assignment operator performs a shallow copy of the content.
[] index operator
The index operator takes a string for the key, and returns a reference to the value. If the key/value pair doesn't exist it will be inserted with a null value.
void set(const string &in key, ? &in value)
void set(const string &in key, int64 &in value)
void set(const string &in key, double &in value)
Sets a key/value pair in the dictionary. If the key already exists, the value will be changed.
bool get(const string &in key, ? &out value) const
bool get(const string &in key, int64 &out value) const
bool get(const string &in key, double &out value) const
Retrieves the value corresponding to the key. The methods return false if the key is not found, and in this case the value will maintain its default value based on the type.
array<string> @getKeys() const
This method returns an array with all of the existing keys in the dictionary. The order of the keys in the array is undefined.
bool exists(const string &in key) const
Returns true if the key exists in the dictionary.
bool delete(const string &in key)
Removes the key and the corresponding value from the dictionary. Returns false if the key wasn't found.
void deleteAll()
Removes all entries in the dictionary.
bool isEmpty() const
Returns true if the dictionary doesn't hold any entries.
uint getSize() const
Returns the number of keys in the dictionary.