A mapping is basically an array that can be indexed on any type, not
not just integers. It can also be seen as a way of linking data
(usaully strings) together. It consists of a lot of index-data pairs
which are linked togeter in such a way that map[index1] returns data1.
It is also possible to set that data by writing map[index1]=new_data1.
If you try to set an index in a mapping that isn't already present in
the mapping then it will be added.
Here follows a list of operators that applies to mappings:
In this list a and b is used to represent a mapping expression:
- a + b
- summation ( ([1:1]) + ([2:2,2:2]) returns ([1:1,2:2,2:2]) )
- a - b
- subtraction, returns a copy of a with all pairs whos
- index is present in b removed.
- a & b
- intersection, return a mapping with all indices that are
- resent in both a and b, if an index is present in both
- a & b the data for that index will be taken from b.
- a | b
- union, return a mapping with all values that are present in
- a or b, differs from summation in that values that are
- present in both a and b are only returned once, as with
- intersection, data will be taken from b when possible.
- a ^ b
- xor, return a mapping with all indices that are present in
- a or b but not in both.
- a == b
- returns 1 if a is the same mapping as b, same size, indices
- and values is not enough, 0 otherwise.
- a != b
- returns 0 if a is the same mapping as b, same size, indices
- and values is not enough, 1 otherwise.
- ! a
- boolean not, returns 0
- a[c]
- indexing, returns the value associated with the value c
- in the mapping a. If there is no index c in the mapping
- zero will be returned. (With zero_type = 1)
- a[c]=d
- setting, this associates d with c in the mapping, the index
- c will be added to the mapping automatically if it isn't
- already there.