Eggdrop & Tcl

Base de connaissances eggdrop et tcl

Outils pour utilisateurs

Outils du site


tcl:dict

Ceci est une ancienne révision du document !


dict

Manipule les dictionnaires

Syntaxe

dict append dictionaryVariable key ?string ...? 
dict create ?key value ...? 
dict exists dictionaryValue key ?key ...? 
dict filter dictionaryValue filterType arg ?arg ...?
   dict filter dictionaryValue key ?globPattern ...? 
   dict filter dictionaryValue script {keyVariable valueVariable} script 
   dict filter dictionaryValue value ?globPattern ...? 
dict for {keyVariable valueVariable} dictionaryValue body 
dict get dictionaryValue ?key ...? 
dict incr dictionaryVariable key ?increment? 
dict info dictionaryValue 
dict keys dictionaryValue ?globPattern? 
dict lappend dictionaryVariable key ?value ...? 
dict map {keyVariable valueVariable} dictionaryValue body 
dict merge ?dictionaryValue ...? 
dict remove dictionaryValue ?key ...? 
dict replace dictionaryValue ?key value ...? 
dict set dictionaryVariable key ?key ...? value 
dict size dictionaryValue 
dict unset dictionaryVariable key ?key ...? 
dict update dictionaryVariable key varName ?key varName ...? body 
dict values dictionaryValue ?globPattern? 
dict with dictionaryVariable ?key ...? body 

Description

Cette commande permet de créer des dictionnaires, sortes de tableaux associatifs (array) sans nom, mais avec des fonctionnalités supplémentaires.

Exemples

Création d'un dictionnaire :

set le_dico [dict create k1 v1 k2 v2 k3 v3]

Faute de dictionnaire, on aurait dû créer un tableau au moyen de la commande

array set le_tableau {k1 v1 k2 v2 k3 v3}

Récupération de la valeur “v2” associée à la clé “k2” :

puts [dict get $le_dico k2]   ;# -> v2

Ajout de la clé k4 associée à la valeur v4 dans le dictionnaire :

dict set le_dico k4 v4        ;# k1 v1 k2 v2 k3 v3 k4 v4

Modification le la valeur associée à la clé k3 :

dict set le_dico k3 v3n       ;# k1 v1 k2 v2 k3 v3n k4 v4

Suppression de la clé k2 (et de sa valeur associée)

dict unset le_dico k2        ;# k1 v1 k3 v3n k4 v4

Liste des clés

puts [dict keys $le_dico]    ;# -> k1 k3 k4
puts [dict keys $le_dico *3] ;# -> k3

Une valeur-liste

dict lappend k5 v5           ;# k1 v1 k3 v3n k4 v4 k5 v5
dict lappend k5 v5a v5b      ;# k1 v1 k3 v3n k4 v4 k5 {v5 v5a v5b}

Si une procédure doit accéder à un dictionnaire sans le modifier, on peut passer sa valeur. Avec un tableau, il faut toujours passer le nom :

proc get_val_dico {dico k} {return [dict get $dico $k]}
proc get_val_array {arrayName k} {upvar $arrayName array; return $array($k)}
puts [get_val_dico $le_dico k3]     ;# -> v3n
puts [get_val_array le_tableau k3]  ;# -> v3

Voir aussi

tcl/dict.1697020102.txt.gz · Dernière modification : 2023/10/11 10:28 de CrazyCat