Returns the number of key:value pairs in a dict
A hashtable is a mapping from a key to a value. The
dict_ family of opcodes
implement a hashtable mapping either strings or integers to strings or floats.
dict_size returns the number of such key:value pairs inside a dict. If the handle
passed does not point to a valid dict,
dict_size returns -1. It is thus possible
to use it to check that the passed handle is valid (similar to
dict_query idict "exists",
dict_size can be used together with dict_iter to iterate over the key:value
isize dict_size idict ksize dict_size idict
dict_size executes both at i-time and k-time.
ìdict: the handle of the dict, as returned by
ksize: the number of key:value pairs in the dict
<CsoundSynthesizer> <CsOptions> --nosound </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 2 instr 1 ; create a local dict, mapping strings to numbers idict dict_new "sf" ; set key a key:value pair dict_set idict, "bar", 123 ksize = dict_size(idict) printf "size: %d", 1, ksize dict_set idict, "foo", 4 ksize = dict_size(idict) printf "size: %d", 1, ksize ; size does not change now dict_set idict, "foo", 10 ksize = dict_size(idict) printf "size: %d", 1, ksize ; we delete a key, size is reduced dict_set idict, "foo" ksize = dict_size(idict) printf "size: %d", 1, ksize turnoff endin </CsInstruments> <CsScore> i 1 0 1 </CsScore> </CsoundSynthesizer>
Eduardo Moguillansky, 2019