Tcl - Variabili

In Tcl, non esiste il concetto di dichiarazione di variabile. Una volta che viene incontrato un nuovo nome di variabile, Tcl definirà una nuova variabile.

Denominazione delle variabili

Il nome delle variabili può contenere qualsiasi carattere e lunghezza. Puoi anche avere spazi bianchi racchiudendo la variabile tra parentesi graffe, ma non è preferibile.

Il comando set viene utilizzato per assegnare un valore a una variabile. La sintassi per il comando set è,

set variableName value

Di seguito sono riportati alcuni esempi di variabili:

#!/usr/bin/tclsh

set variableA 10
set {variable B} test
puts $variableA puts ${variable B}

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

10
test

Come puoi vedere nel programma sopra, $ variableName viene utilizzato per ottenere il valore della variabile.

Digitazione dinamica

Tcl è un linguaggio tipizzato dinamicamente. Il valore della variabile può essere convertito dinamicamente nel tipo richiesto quando richiesto. Ad esempio, un numero 5 memorizzato come stringa verrà convertito in numero quando si esegue un'operazione aritmetica. È mostrato di seguito -

#!/usr/bin/tclsh

set variableA "10"
puts $variableA
set sum [expr $variableA +20]; puts $sum

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

10
30

Espressioni matematiche

Come puoi vedere nell'esempio sopra, expr è usato per rappresentare un'espressione matematica. La precisione predefinita di Tcl è di 12 cifre. Per ottenere risultati in virgola mobile, dovremmo aggiungere almeno una singola cifra decimale. Un semplice esempio spiega quanto sopra.

#!/usr/bin/tclsh

set variableA "10"
set result [expr $variableA / 9]; puts $result
set result [expr $variableA / 9.0]; puts $result
set variableA "10.0"
set result [expr $variableA / 9]; puts $result

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

1
1.1111111111111112
1.1111111111111112

Nell'esempio sopra, puoi vedere tre casi. Nel primo caso, il dividendo e il divisore sono numeri interi e come risultato otteniamo un numero intero. Nel secondo caso, il solo divisore è un numero decimale e nel terzo caso, il dividendo è un numero decimale. Sia nel secondo che nel terzo caso, otteniamo come risultato un numero decimale.

Nel codice precedente, è possibile modificare la precisione utilizzando la variabile speciale tcl_precision. È mostrato di seguito -

#!/usr/bin/tclsh

set variableA "10"
set tcl_precision 5
set result [expr $variableA / 9.0]; puts $result

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

1.1111