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