Operator Reference

create_dictT_create_dictCreateDictCreateDictcreate_dict (Operator)

create_dictT_create_dictCreateDictCreateDictcreate_dict — Create a new empty dictionary.

Signature

create_dict( : : : DictHandle)

Herror T_create_dict(Htuple* DictHandle)

void CreateDict(HTuple* DictHandle)

void HDict::HDict()

void HDict::CreateDict()

static void HOperatorSet.CreateDict(out HTuple dictHandle)

public HDict()

void HDict.CreateDict()

def create_dict() -> HHandle

Description

create_dictcreate_dictCreateDictCreateDictcreate_dict creates a new empty dictionary and returns it in DictHandleDictHandleDictHandledictHandledict_handle.

The dictionary serves as an associative array-like container allowing to store an arbitrary number of values associated with unique keys (integers or strings). Each key can refer either to a tuple or to an iconic object. These are stored in the dictionary using set_dict_tupleset_dict_tupleSetDictTupleSetDictTupleset_dict_tuple or set_dict_objectset_dict_objectSetDictObjectSetDictObjectset_dict_object, respectively, from where they can be retrieved again using get_dict_tupleget_dict_tupleGetDictTupleGetDictTupleget_dict_tuple or get_dict_objectget_dict_objectGetDictObjectGetDictObjectget_dict_object.

The data stored in the dictionary is always a copy of the original data, being it control parameters or objects. The original data can thus be reused immediately after the set_dict_tupleset_dict_tupleSetDictTupleSetDictTupleset_dict_tuple or set_dict_objectset_dict_objectSetDictObjectSetDictObjectset_dict_object calls. The following particularities apply:

Multiple threads can add, retrieve and remove keys concurrently as long as every thread accesses a different key. As an exception to this rule, multiple threads can retrieve the same key from a dictionary simultaneously.

HDevelop In-line Operation

HDevelop provides an in-line operation for create_dictcreate_dictCreateDictCreateDictcreate_dict, which can be used in an expression in the following syntax:

DictHandle := dict{}

Execution Information

  • Multithreading type: reentrant (runs in parallel with non-exclusive operators).
  • Multithreading scope: global (may be called from any thread).
  • Processed without parallelization.

This operator returns a handle. Note that the state of an instance of this handle type may be changed by specific operators even though the handle is used as an input parameter by those operators.

Parameters

DictHandleDictHandleDictHandledictHandledict_handle (output_control)  dict HDict, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Handle of the newly created dictionary.

Number of elements: DictHandle == 1

Example (HDevelop)

Dicts := []
for idx := 0 to 4 by 1
  create_dict (DictHandle)
  Dicts[idx] := DictHandle
endfor
* ...

Result

Returns 2 ( H_MSG_TRUE) unless a resource allocation error occurs.

Possible Successors

set_dict_tupleset_dict_tupleSetDictTupleSetDictTupleset_dict_tuple, set_dict_objectset_dict_objectSetDictObjectSetDictObjectset_dict_object

See also

set_dict_tupleset_dict_tupleSetDictTupleSetDictTupleset_dict_tuple, get_dict_tupleget_dict_tupleGetDictTupleGetDictTupleget_dict_tuple, set_dict_objectset_dict_objectSetDictObjectSetDictObjectset_dict_object, get_dict_objectget_dict_objectGetDictObjectGetDictObjectget_dict_object, get_dict_paramget_dict_paramGetDictParamGetDictParamget_dict_param

Module

Foundation