Syntaxe
Déclare une map : des valeurs rangées sous des clés texte. <name>(<key>) lit ou écrit une entrée, <name>() l'entrée courante.
NewMap <name>.<type>([<slots>])
NewMap <name>([<slots>])
GLOBAL NewMap <name>.<type>([<slots>])
LOCAL NewMap <name>.<type>([<slots>])
<name>(<key>)
<name>()
<name>(<key>).<field>Les éléments
| <name> | Le nom de la map, sans sigil. Il ne peut pas être aussi le nom d'une liste. |
|---|---|
| <type> | Le type des valeurs, comme pour NewList : un suffixe court, un nom de type complet, ou un nom de TYPE. Sans type, la map contient des entiers. |
| <slots> | Indication de taille facultative, gardée pour les programmes PureBasic. Ce doit être un entier positif (0 ou moins arrête le programme) ; elle ne change rien d'autre. |
| <key> | La clé, en texte. Un nombre est converti en texte : m(1) et m("1") sont la même entrée. Les clés tiennent compte de la casse. |
| <field> | Un champ de l'entrée, pour une map d'enregistrements : bag("sword").qty = 1. |
À savoir
m("key") = vcrée l'entrée ou remplace sa valeur.+=,-=,*=et/=marchent sur une entrée.- Lire
m("key")crée l'entrée manquante avec la valeur par défaut. Pour tester sans créer, utilisez FindMapElement(). - Chaque accès fait de cette entrée l'entrée courante. Sans entrée courante, lire
m()arrête le programme :BASIC map has no current element. NewMap m$()est refusé dès le premier usage dem(). Écrivez le type après un point :NewMap m.s().- Dans un programme avec
DO … LOOP, une FUNCTION ne voit pas une map déclarée au-dessus deDO(… is not defined). Déclarez-la avecGLOBAL NewMap.
Exemple
NewMap stock.i()stock("apple") = 3stock("pear") = 5stock("apple") += 2Console(Str(stock("apple")) + " " + Str(MapSize(stock()))) ' 5 2IF FindMapElement(stock(), "plum") = 0 THEN Console("no plum") ' no plumConsole(Str(stock("plum")) + " " + Str(MapSize(stock()))) ' 0 3Dans le manuel : Tableaux, listes et maps