How to add your knowledge

defineMap()

    Table of contents
    1. 1. Synopsis
    2. 2. Syntax
    3. 3. Example 1
    4. 4. Example 2
    5. 5. Example 3
    6. 6. Example 4

    Synopsis

    Defines a new "map". The map lasts for the duration of the Intent session. A "map" data structure is sometimes referred to as a "hash table" or "lookup table". If you define another map with the same name, the reset? argument specifies whether the existing map is cleared. This function always returns True.

    You must invoke defineMap() prior to attempting to store or retrieve data from it. This may be a good reason to use an onCreate rule.

    Syntax

    defineMap ( mapName As Name, _
                Optional reset? As Boolean = True ) As Boolean 
    Argument Type Description
    mapName Name The name of the map
    reset? Boolean Optional; if True (default) and a map with the same name exists, the data in the map is cleared at that point. If False, nothing happens to the existing data in the map.

    Example 1

    Initial definition

    Intent >defineMap(:myMap) 
    --> True 
    Defines a map named 'myMap'.

    Example 2

    Redefinition (reset? is True by default)

    Intent >defineMap(:myMap) 
    --> True 
    This redefines the map defined in Example 1, clearing any values that may have been previously set using setMapValue().

    Example 3

    Redefinition without resetting

    Intent >defineMap(:myMap, reset? := False) 
    --> True 
    This attempts to define a map named 'myMap'. But since a map with this name exists and reset? is False, the existing map is left alone.

    Example 4

    This example defines a map, sets a couple values, defines the map again without resetting it, gets map keys and some values, and finally deletes a map value.

    Intent >defineMap(:myMap)
    --> True
    Intent >setMapValue(:myMap, :myStringValue, "A String")
    --> True
    Intent >setMapValue(:myMap, :myIntegerValue, 123)
    --> True
    Intent >defineMap(:myMap, reset? := False)
    --> True
    Intent >getMapKeys(:myMap)
    --> {:myStringValue, :myIntegerValue}
    Intent >getMapValue(:myMap, :myStringValue)
    --> "A String"
    Intent >getMapValue(:noMap, :noValue)
    --> NoValue
    Intent >deleteMapValue(:myMap, :myIntegerValue)
    --> True
    Intent >getMapValue(:myMap, :myIntegerValue)
    --> NoValue