Tcl - Tipi di dati

Il tipo di dati primitivo di Tcl è stringa e spesso possiamo trovare virgolette su Tcl come linguaggio solo stringa. Questi tipi di dati primitivi a loro volta creano tipi di dati compositi per elenchi e array associativi. In Tcl, i tipi di dati possono rappresentare non solo i semplici oggetti Tcl, ma possono anche rappresentare oggetti complessi come maniglie, oggetti grafici (principalmente widget) e canali I / O. Esaminiamo i dettagli su ciascuno dei precedenti.

Oggetti Tcl semplici

In Tcl, se si tratta di un numero intero, booleano, numero in virgola mobile o una stringa. Quando vuoi usare una variabile, puoi assegnarle direttamente un valore, non c'è alcun passo di dichiarazione in Tcl. Possono esserci rappresentazioni interne per questi diversi tipi di oggetti. Può trasformare un tipo di dati in un altro quando richiesto. La sintassi per assegnare il valore alla variabile è la seguente:

#!/usr/bin/tclsh

set myVariable 18
puts $myVariable

Quando il codice sopra viene eseguito, produce il seguente risultato:

18

L'istruzione sopra creerà un nome di variabile myVariable e lo memorizzerà come una stringa anche se non abbiamo usato le virgolette doppie. Ora, se proviamo a fare un'aritmetica sulla variabile, questa viene automaticamente trasformata in un numero intero. Di seguito è mostrato un semplice esempio:

#!/usr/bin/tclsh

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

Quando il codice sopra viene eseguito, produce il seguente risultato:

33

Una cosa importante da notare è che queste variabili non hanno valori predefiniti e devono essere assegnate a un valore prima di essere utilizzate.

Se proviamo a stampare usando put, il numero viene trasformato nella stringa corretta. Avere due rappresentazioni, interna ed esterna, aiuta Tcl a creare strutture di dati complesse facilmente rispetto ad altri linguaggi. Inoltre, Tcl è più efficiente grazie alla sua natura di oggetti dinamici.

Rappresentazioni di stringa

A differenza di altre lingue, in Tcl non è necessario includere virgolette doppie quando è solo una singola parola. Un esempio può essere:

#!/usr/bin/tclsh

set myVariable hello
puts $myVariable

Quando il codice sopra viene eseguito, produce il seguente risultato:

hello

Quando vogliamo rappresentare più stringhe, possiamo usare virgolette doppie o parentesi graffe. È mostrato di seguito -

#!/usr/bin/tclsh

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

Quando il codice sopra viene eseguito, produce il seguente risultato:

hello world
hello world

Elenco

L'elenco non è altro che un gruppo di elementi. Un gruppo di parole che utilizza virgolette doppie o parentesi graffe può essere utilizzato per rappresentare un semplice elenco. Di seguito è riportato un semplice elenco:

#!/usr/bin/tclsh

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

Quando il codice sopra viene eseguito, produce il seguente risultato:

blue
green

Array associativo

Gli array associativi hanno un indice (chiave) che non è necessariamente un numero intero. In genere è una stringa che agisce come coppie di valori chiave. Di seguito è mostrato un semplice esempio:

#!/usr/bin/tclsh

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

Quando il codice sopra viene eseguito, produce il seguente risultato:

80
90

Maniglie

Gli handle Tcl sono comunemente usati per rappresentare file e oggetti grafici. Questi possono includere handle per le richieste di rete e anche altri canali come la comunicazione della porta seriale, socket o dispositivi I / O. Il seguente è un esempio in cui viene creato un handle di file.

set myfile [open "filename" r]

Vedrai maggiori dettagli sui file nel capitolo I / O dei file Tcl .