[//000000001]: # (struct::map \- ) [//000000002]: # (Generated from file 'struct\_map\.man' by tcllib/doctools with format 'markdown') [//000000003]: # (struct::map\(n\) 1 tcllib "")
[ Main Table Of Contents | Table Of Contents | Keyword Index | Categories | Modules | Applications ]
# NAME struct::map \- Manage key/value maps # Table Of Contents - [Table Of Contents](#toc) - [Synopsis](#synopsis) - [Description](#section1) - [API](#section2) - [Bugs, Ideas, Feedback](#section3) # SYNOPSIS package require struct::map ?1? [__::struct::map__ *mapName*](#1) [__mapName__ __method__ ?*arg arg \.\.\.*?](#2) [*mapName* __get__](#3) [*mapName* __names__](#4) [*mapName* __set__ *name* ?*value*?](#5) [*mapName* __unset__ ?*pattern*\.\.\.?](#6) # DESCRIPTION Provides a snit class whose instances manage a key/value map\. In other words, an object wrapper around Tcl arrays\. # API The main command provides construction of maps: - __::struct::map__ *mapName* Creates a new, empty map with an associated global Tcl command whose name is *mapName*\. It may be used to invoke various operations on the map\. It has the following general form: * __mapName__ __method__ ?*arg arg \.\.\.*? __method__ and *arg*uments determine the exact behavior of the command\. If *mapName* is specified as __%AUTO%__ a unique name will be generated by the package itself\. The result of the command is the fully\-qualified name of the instance command\. The following commands are possible for map objects: - *mapName* __get__ Returns the entire map as a Tcl dictionary\. - *mapName* __names__ Returns the list of all keys known to the map, in arbitrary order\. - *mapName* __set__ *name* ?*value*? Sets key *name* to the specified *value*, if the value specified\. Returns the value for the key\. Throws an error if the key is not known\. - *mapName* __unset__ ?*pattern*\.\.\.? Removes all keys matching at least one of the glob *pattern*s from the map\. If no pattern is specified all keys are removed\. In other words, the default pattern is __\*__\. The result of the command is the empty string\. # Bugs, Ideas, Feedback This document, and the package it describes, will undoubtedly contain bugs and other problems\. Please report such in the category *struct :: list* of the [Tcllib Trackers](http://core\.tcl\.tk/tcllib/reportlist)\. Please also report any ideas for enhancements you may have for either package and/or documentation\. When proposing code changes, please provide *unified diffs*, i\.e the output of __diff \-u__\. Note further that *attachments* are strongly preferred over inlined patches\. Attachments can be made by going to the __Edit__ form of the ticket immediately after its creation, and then using the left\-most button in the secondary navigation bar\.