Tcl - Types de données

Le type de données primitif de Tcl est une chaîne et nous pouvons souvent trouver des guillemets sur Tcl en tant que langage de chaîne uniquement. Ces types de données primitifs créent à leur tour des types de données composites pour la liste et le tableau associatif. Dans Tcl, les types de données peuvent représenter non seulement les objets Tcl simples, mais peuvent également représenter des objets complexes tels que des poignées, des objets graphiques (principalement des widgets) et des canaux d'E / S. Examinons les détails de chacun des éléments ci-dessus.

Objets Tcl simples

En Tcl, qu'il s'agisse d'un nombre entier, d'un booléen, d'un nombre à virgule flottante ou d'une chaîne. Lorsque vous souhaitez utiliser une variable, vous pouvez lui affecter directement une valeur, il n'y a pas d'étape de déclaration dans Tcl. Il peut y avoir des représentations internes pour ces différents types d'objets. Il peut transformer un type de données en un autre si nécessaire. La syntaxe pour attribuer une valeur à une variable est la suivante -

#!/usr/bin/tclsh

set myVariable 18
puts $myVariable

Lorsque le code ci-dessus est exécuté, il produit le résultat suivant -

18

L'instruction ci-dessus créera un nom de variable myVariable et le stockera sous forme de chaîne même si nous n'avons pas utilisé de guillemets doubles. Maintenant, si nous essayons de faire une arithmétique sur la variable, elle est automatiquement transformée en entier. Un exemple simple est présenté ci-dessous -

#!/usr/bin/tclsh

set myVariable 18
puts [expr $myVariable + 6 + 9]

Lorsque le code ci-dessus est exécuté, il produit le résultat suivant -

33

Une chose importante à noter est que ces variables n'ont aucune valeur par défaut et doivent recevoir une valeur avant d'être utilisées.

Si nous essayons d'imprimer en utilisant des puts, le nombre est transformé en une chaîne appropriée. Le fait d'avoir deux représentations, interne et externe, aide Tcl à créer des structures de données complexes facilement par rapport à d'autres langages. En outre, Tcl est plus efficace en raison de sa nature d'objet dynamique.

Représentations de chaîne

Contrairement à d'autres langues, en Tcl, vous n'avez pas besoin d'inclure des guillemets doubles lorsqu'il ne s'agit que d'un seul mot. Un exemple peut être -

#!/usr/bin/tclsh

set myVariable hello
puts $myVariable

Lorsque le code ci-dessus est exécuté, il produit le résultat suivant -

hello

Lorsque nous voulons représenter plusieurs chaînes, nous pouvons utiliser des guillemets doubles ou des accolades. Il est montré ci-dessous -

#!/usr/bin/tclsh

set myVariable "hello world"
puts $myVariable
set myVariable {hello world}
puts $myVariable

Lorsque le code ci-dessus est exécuté, il produit le résultat suivant -

hello world
hello world

liste

La liste n'est rien d'autre qu'un groupe d'éléments. Un groupe de mots utilisant des guillemets doubles ou des accolades peut être utilisé pour représenter une liste simple. Une liste simple est présentée ci-dessous -

#!/usr/bin/tclsh

set myVariable {red green blue}
puts [lindex $myVariable 2]
set myVariable "red green blue"
puts [lindex $myVariable 1]

Lorsque le code ci-dessus est exécuté, il produit le résultat suivant -

blue
green

Tableau associatif

Les tableaux associatifs ont un index (clé) qui n'est pas nécessairement un entier. C'est généralement une chaîne qui agit comme des paires clé / valeur. Un exemple simple est présenté ci-dessous -

#!/usr/bin/tclsh

set  marks(english) 80
puts $marks(english)
set  marks(mathematics) 90
puts $marks(mathematics)

Lorsque le code ci-dessus est exécuté, il produit le résultat suivant -

80
90

Poignées

Les poignées Tcl sont couramment utilisées pour représenter des fichiers et des objets graphiques. Ceux-ci peuvent inclure des poignées pour les demandes réseau et également d'autres canaux tels que la communication du port série, les prises ou les périphériques d'E / S. Voici un exemple où un descripteur de fichier est créé.

set myfile [open "filename" r]

Vous verrez plus de détails sur les fichiers dans le chapitre E / S des fichiers Tcl .