Bu ders, TCL’in komut değerlendirmesi sırasında yerine koyma (substitution) işlemini nasıl ele aldığını tartışan üç dersin ilkidir.
Tcl’de, bir komutun değerlendirilmesi iki aşamada gerçekleştirilir. Birinci aşama, tek bir yerine koyma işlemidir. İkinci aşama, oluşan komutun değerlendirilmesidir. Unutmayın ki yalnızca bir yerine koyma geçişi yapılır. Bu nedenle, aşağıdaki komutta:
puts $varName
doğru değişkenin içeriği $varName
yerine koyulur ve ardından komut yürütülür.
Yerine koyma aşamasında, birkaç tür yerine koyma işlemi gerçekleşebilir.
Köşeli parantezler içinde ([]
) bulunan bir komut, o komutun yürütülmesinden dönen değer ile değiştirilir. Bir çok yazılım dilinde bu özellik kullanılabilir.
(Bu konu, “Bir Komutun Sonuçları – MAT 101” dersinde daha ayrıntılı olarak açıklanacaktır.)
Çift tırnak veya süslü parantez içindeki kelimeler, tek bir argüman olarak gruplanır. Ancak, çift tırnaklar ve süslü parantezler, yerine koyma aşamasında farklı davranışlara neden olur. Bu derste, çift tırnakların yerine koyma aşamasındaki davranışına odaklanacağız.
Çift tırnaklar içindeki kelimeleri gruplamak, yerine koymaların alıntıların içinde gerçekleşmesine izin verir. Yerine konulan grup daha sonra tek bir argüman olarak değerlendirilir. Dolayısıyla, aşağıdaki komutta:
puts "Mevcut stok değeri $varName"
varName
‘in mevcut içeriği $varName
yerine koyulur ve ardından tüm dize çıktı cihazına yazdırılır.
Özel durumlar
Genel olarak, ters eğik çizgi (\
) hemen ardından gelen tek karakter için yerine koymayı devre dışı bırakır. Ters eğik çizgiden hemen sonra gelen herhangi bir karakter, yerine koyma yapılmadan kalacaktır.
Ancak, yerine koyma aşamasında belirli “Ters Eğik Çizgi Dizileri” belirli değerlerle değiştirilir. Aşağıdaki ters eğik çizgi dizileri, aşağıda gösterildiği gibi yerine koyulacaktır. Sizlere vereceğim örnekte bu durumları test etmenizi tavsiye ederim 🙂
string | output | hex değeri |
---|---|---|
\a | Sesli uyarı (Çan) | \x07 |
\b | Geri alma (Backspace) | \x08 |
\f | Sayfa Sonu (Ekranı Temizle) | \x0c |
\n | Yeni Satır | \x0a |
\r | Satır Başı (Carriage Return) | \x0d |
\t | Tab | \x09 |
\v | Dikey Tab | \x0b |
\ddd | Sekizli (Octal) değer | d = 0-7 |
\xhh | Onaltılı (Hex) değer | h = 0-9, A-F, a-f |
Son istisna, bir metin satırının sonunda bulunan ters eğik çizgidir. Bu, yorumlayıcının yeni satırı görmezden gelmesine ve metni tek bir satır olarak işlemesine neden olur. Yorumlayıcı, sonlandırıcı ters eğik çizginin yerine bir boşluk karakteri yerleştirir.
Örnek kodlarla oynayıp, kendi kodlarınızı yazdıktan hemen sonra bir sonraki derse büyük bir ara vermeden geçmenizi tavsiye ederim zira bu bölüm aslında 3 ara kısımdan oluşan bir konunun ilk kısmı. Hadi kodumuza geçelim:
Eğer kodu ve konuyu anladıysanız hemen sıcağı sıcağına 3 kısımlık konumuzun 2. kısımına geçelim ! Bir sonraki bölümde görüşmek üzere