tcl:dict
Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
tcl:dict [2023/10/11 10:28] – créée CrazyCat | tcl:dict [2023/10/11 11:39] (Version actuelle) – [incr] CrazyCat | ||
---|---|---|---|
Ligne 27: | Ligne 27: | ||
===== Description ===== | ===== Description ===== | ||
Cette commande permet de créer des dictionnaires, | Cette commande permet de créer des dictionnaires, | ||
+ | ==== append ==== | ||
+ | <code tcl>dict append dictionaryVariable key ?string ...?</ | ||
+ | Cette opération ajoute la chaîne (ou les chaînes) donnée(s) à la valeur de la clé donnée dans la valeur du dictionnaire contenue dans la variable donnée, en écrivant la valeur du dictionnaire résultante dans cette variable. Les clés inexistantes sont traitées comme si elles correspondaient à une chaîne vide. La valeur mise à jour du dictionnaire est renvoyée. | ||
+ | ==== create ==== | ||
+ | <code tcl>dict create ?key value ...?</ | ||
+ | Renvoie un nouveau dictionnaire contenant chacune des correspondances clé/valeur énumérées en tant qu' | ||
+ | ==== exists ==== | ||
+ | <code tcl>dict exists dictionaryValue key ?key ...?</ | ||
+ | Cette fonction renvoie une valeur booléenne indiquant si la clé donnée (ou le chemin des clés à travers un ensemble de dictionnaires imbriqués) existe dans la valeur donnée du dictionnaire. | ||
+ | ==== filter ==== | ||
+ | <code tcl>dict filter dictionaryValue filterType arg ?arg ...?</ | ||
+ | Cette fonction prend une valeur de dictionnaire et renvoie un nouveau dictionnaire qui contient uniquement les paires clé/valeur qui correspondent au type de filtre spécifié (qui peut être abrégé.) Les types de filtres pris en charge sont les suivants: | ||
+ | * **dict filter // | ||
+ | * **dict filter // | ||
+ | * **dict filter // | ||
+ | ==== for ==== | ||
+ | <code tcl>dict for {keyVariable valueVariable} dictionaryValue body</ | ||
+ | Cette commande prend trois arguments, le premier étant une liste de noms de variables à deux éléments (pour la clé et la valeur respectivement de chaque correspondance dans le dictionnaire), | ||
+ | ==== get ==== | ||
+ | <code tcl>dict get dictionaryValue ?key ...?</ | ||
+ | Étant donné une valeur de dictionnaire (premier argument) et une clé (deuxième argument), cette commande récupère la valeur de cette clé. Lorsque plusieurs clés sont fournies, la commande se comporte comme si le résultat de `dict get $dictVal $key` était transmis comme premier argument à `dict get`, les autres arguments étant les deuxièmes (et éventuellement les suivants). Cela facilite les recherches dans les dictionnaires imbriqués. Par exemple, les deux commandes suivantes sont équivalentes : | ||
+ | <code tcl>dict get $dict foo bar spong | ||
+ | dict get [dict get [dict get $dict foo] bar] spong</ | ||
+ | Si aucune clé n'est fournie, le `dict get` renverra une liste contenant des paires d' | ||
+ | |||
+ | Tenter de récupérer une valeur pour une clé qui n'est pas présente dans le dictionnaire est une erreur. | ||
+ | ==== incr ==== | ||
+ | <code tcl>dict incr dictionaryVariable key ? | ||
+ | Cette opération ajoute la valeur d' | ||
+ | ==== info ==== | ||
+ | <code tcl>dict info dictionaryValue</ | ||
+ | Cette fonction renvoie des informations (destinées à être affichées) sur le dictionnaire donné, bien que le format de ces données dépende de l' | ||
+ | ==== keys ==== | ||
+ | <code tcl>dict keys dictionaryValue ? | ||
+ | Renvoie une liste de toutes les clés de la valeur du dictionnaire donnée. Si un motif est fourni, seules les clés qui y correspondent (selon les règles de correspondance des chaînes) seront renvoyées. Les clés retournées seront dans l' | ||
+ | ==== lappend ==== | ||
+ | <code tcl>dict lappend dictionaryVariable key ?value ...?</ | ||
+ | Ajoute les éléments donnés à la valeur de la liste à laquelle la clé donnée correspond dans la valeur du dictionnaire contenue dans la variable donnée, en écrivant la valeur du dictionnaire résultante dans cette variable. Les clés non existantes sont traitées comme si elles correspondaient à une liste vide, et il est légal qu'il n'y ait pas d' | ||
+ | ==== map ==== | ||
+ | <code tcl>dict map {keyVariable valueVariable} dictionaryValue body</ | ||
+ | Cette commande applique une transformation à chaque élément d'un dictionnaire et renvoie un nouveau dictionnaire. Elle prend trois arguments : le premier est une liste de noms de variables à deux éléments (pour la clé et la valeur respectivement de chaque correspondance dans le dictionnaire), | ||
+ | |||
+ | Si l' | ||
+ | ==== merge ==== | ||
+ | <code tcl>dict merge ? | ||
+ | Renvoie un dictionnaire contenant le contenu de chacun des arguments dictionaryValue . Lorsque deux dictionnaires (ou plus) contiennent une correspondance pour la même clé, le dictionnaire résultant associe cette clé à la valeur selon le dernier dictionnaire de la ligne de commande contenant une correspondance pour cette clé. | ||
+ | ==== remove ==== | ||
+ | <code tcl>dict remove dictionaryValue ?key ...?</ | ||
+ | Renvoie un nouveau dictionnaire qui est une copie de l' | ||
+ | ==== replace ==== | ||
+ | <code tcl>dict replace dictionaryValue ?key value ...?</ | ||
+ | Renvoie un nouveau dictionnaire qui est une copie de l' | ||
+ | ==== set ==== | ||
+ | <code tcl>dict set dictionaryVariable key ?key ...? value</ | ||
+ | Cette opération prend le nom d'une variable contenant une valeur de dictionnaire et place une valeur de dictionnaire mise à jour dans cette variable contenant une correspondance entre la clé donnée et la valeur donnée. Lorsque plusieurs clés sont présentes, cette opération crée ou met à jour une chaîne de dictionnaires imbriqués. La valeur mise à jour du dictionnaire est renvoyée. | ||
+ | ==== size ==== | ||
+ | <code tcl>dict size dictionaryValue</ | ||
+ | Renvoie le nombre de correspondances clé/valeur dans le dictionnaire donné. | ||
+ | ==== unset ==== | ||
+ | <code tcl>dict unset dictionaryVariable key ?key ...?</ | ||
+ | Cette opération (le compagnon de [[#set|dict set]]) prend le nom d'une variable contenant une valeur de dictionnaire et place dans cette variable une valeur de dictionnaire mise à jour qui ne contient pas de correspondance pour la clé donnée. Lorsque plusieurs clés sont présentes, cette opération décrit un chemin à travers les dictionnaires imbriqués jusqu' | ||
+ | ==== update ==== | ||
+ | <code tcl>dict update dictionaryVariable key varName ?key varName ...? body</ | ||
+ | Exécute le script Tcl dans //body// avec la valeur de chaque clé (telle qu' | ||
+ | |||
+ | Chaque varName est mappé dans la portée entourant le dict update ; il est recommandé de n' | ||
+ | ==== values ==== | ||
+ | <code tcl>dict values dictionaryValue ? | ||
+ | Renvoie une liste de toutes les valeurs du dictionnaire donné. Si un motif est fourni, seules les valeurs qui y correspondent (selon les règles de correspondance des chaînes) seront renvoyées. Les valeurs retournées seront dans l' | ||
+ | ==== with ==== | ||
+ | <code tcl>dict with dictionaryVariable ?key ...? body</ | ||
+ | Exécute le script Tcl dans body avec la valeur de chaque clé dans dictionnaireVariable mappée (d'une manière similaire à dict update) à une variable portant le même nom. Lorsqu' | ||
+ | |||
+ | Les variables sont mappées dans la portée entourant le dict with ; il est recommandé de n' | ||
+ | |||
+ | Si la variable dictionnaire contient une valeur qui n'est pas un dictionnaire au moment où le corps se termine (ce qui peut facilement se produire si le nom est identique à l'une des clés du dictionnaire), | ||
+ | ===== Valeurs de dictionnaire ===== | ||
+ | Les dictionnaires sont des valeurs qui contiennent une correspondance efficace, préservant l' | ||
+ | |||
+ | Les opérations qui dérivent un nouveau dictionnaire à partir d'un ancien (par exemple, les mises à jour telles que [[#set|dict set]] et [[# | ||
+ | |||
+ | |||
===== Exemples ===== | ===== Exemples ===== | ||
Création d'un dictionnaire : | Création d'un dictionnaire : |
tcl/dict.1697020102.txt.gz · Dernière modification : 2023/10/11 10:28 de CrazyCat