Tcl - Değişkenler
Tcl'de değişken bildirimi kavramı yoktur. Yeni bir değişken adı ile karşılaşıldığında, Tcl yeni bir değişken tanımlayacaktır.
Değişken Adlandırma
Değişkenlerin adı herhangi bir karakter ve uzunluk içerebilir. Değişkeni küme parantezi içine alarak beyaz boşluklara bile sahip olabilirsiniz, ancak bu tercih edilmez.
Set komutu, bir değişkene değer atamak için kullanılır. Set komutunun sözdizimi,
set variableName value
Aşağıda birkaç değişken örneği gösterilmektedir -
#!/usr/bin/tclsh
set variableA 10
set {variable B} test
puts $variableA
puts ${variable B}
Yukarıdaki kod çalıştırıldığında, aşağıdaki sonucu verir -
10
test
Yukarıdaki programda görebileceğiniz gibi, değişkenin değerini almak için $ variableName kullanılır.
Dinamik Yazma
Tcl, dinamik olarak yazılmış bir dildir. Değişkenin değeri, gerektiğinde dinamik olarak gerekli türe dönüştürülebilir. Örneğin, dizge olarak saklanan bir 5 sayısı aritmetik bir işlem yapılırken sayıya dönüştürülecektir. Aşağıda gösterilmiştir -
#!/usr/bin/tclsh
set variableA "10"
puts $variableA
set sum [expr $variableA +20];
puts $sum
Yukarıdaki kod çalıştırıldığında, aşağıdaki sonucu verir -
10
30
Matematiksel İfadeler
Yukarıdaki örnekte görebileceğiniz gibi, ifade matematiksel ifadeyi temsil etmek için kullanılır. Tcl'nin varsayılan duyarlığı 12 basamaktır. Kayan nokta sonuçlarını alabilmek için en az bir ondalık basamak eklemeliyiz. Basit bir örnek yukarıdakileri açıklamaktadır.
#!/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
Yukarıdaki kod çalıştırıldığında, aşağıdaki sonucu verir -
1
1.1111111111111112
1.1111111111111112
Yukarıdaki örnekte, üç durum görebilirsiniz. İlk durumda, temettü ve bölen tam sayılardır ve sonuç olarak bir tam sayı elde ederiz. İkinci durumda, tek başına bölen bir ondalık sayıdır ve üçüncü durumda, bölünen bir ondalık sayıdır. Hem ikinci hem de üçüncü durumlarda, sonuç olarak bir ondalık sayı elde ederiz.
Yukarıdaki kodda, tcl_precision özel değişkenini kullanarak hassasiyeti değiştirebilirsiniz. Aşağıda gösterilmiştir -
#!/usr/bin/tclsh
set variableA "10"
set tcl_precision 5
set result [expr $variableA / 9.0];
puts $result
Yukarıdaki kod çalıştırıldığında, aşağıdaki sonucu verir -
1.1111