TCL Serisi Bölüm 5 – TCL’de Komut Değerlendirme Sırasında Yerine Koyma (Substitution) (3 de 2)

Bir önceki bölümlerde substitution konusuna girişimizi yapmıştık. Hadi konuya daha derin bir dalış yapalım ve daha özel durumlara da göz atalım

Komut değerlendirmesinin yerine koyma aşamasında, süslü parantez ({}) ve çift tırnak (“) operatörleri, Tcl yorumlayıcısı(interpreter) tarafından farklı şekilde ele alınır.

Son derste, kelimeleri çift tırnak içinde gruplamanın, çift tırnakların içinde yerine koymaların gerçekleşmesine izin verdiğini görmüştük. Buna karşılık, kelimeleri süslü parantezler içinde gruplamak, süslü parantezlerin içindeki yerine koymayı devre dışı bırakır(Buraya dikkat edelim 🙂 ). Süslü parantezler içindeki karakterler, yazıldığı gibi bir komuta iletilir. Süslü parantezler içinde işlenen tek “Ters Eğik Çizgi Dizisi”, bir satırın sonundaki ters eğik çizgidir. Bu, hala bir satır devamı karakteridir.

Süslü parantezlerin bu etkiye yalnızca gruplama operatörü olarak kullanıldıklarında sahip olduğunu unutmamalıyz ! Bir dize zaten çift tırnak veya süslü parantezlerle gruplanmışsa ve gruplama içinde süslü parantezler bulunuyorsa, süslü parantezler ASCII karakterleri olarak değerlendirilir. Dize çift tırnaklarla gruplanmışsa, süslü parantezlerin arasında bile olsa, çift tırnaklı dize içinde yerine koymalar gerçekleşecektir.

Hadi küçük örneklerimize göz atalım. Özellikle örneklerden sonra “Peki ya şöyle yapsaydık ne olurdu ?” dediğiniz yerler olursa lütfen kodu yazıp deneyin. En keyifli öğrenme yöntemi denemektir 🙂

ÖRNEKLER

Çift Tırnaklarla Gruplama

set var "dünya"
puts "Merhaba, $var!"
Output:

Merhaba, dünya!

Süslü Parantezlerle Gruplama

set var "dünya"
puts {Merhaba, $var!}
Output:

Merhaba, $var!

Çift Tırnak İçinde Süslü Parantezler

set var "dünya"
puts "Merhaba, {$var}!"
Output:

Merhaba, {dünya}!

Bu örnekte, var değişkeninin değeri çift tırnaklar içine yerine koyduk ve süslü parantezler ASCII karakterleri olarak değerlendirildi. Sonuç olarak “Merhaba, {dünya}!” yazdırmış olduk.

Süslü Parantezler İçinde Ters Eğik Çizgi Dizisi

puts {Bu, bir satır \
devamıdır.}
Output:

Bu, bir satır  devamıdır.

Bu örnekte, süslü parantezler içindeki ters eğik çizgi, bir satır devamı olarak görülür ve sonuç olarak programımız “Bu, bir satır devamıdır.” yazdırır.



Diğer örnek kodumuza geçmeden önce sizlerden ricam kodu okuduktan sonra çıktıyı tahmin etmeniz olacak. Eğer tahmin ettiğinizin dışında bir çıktı görürseniz tavsiyem o konu ile alakalı yazabildiğin kadar örnek kod yazmanız olacak. İşte örnek kodumuz :

Eğer örnek kodları çalıştırıp konuyu anladıysanız Substitution konusunun son bölümüne devam edebiliriz demektir. Araya çok büyük bir ara girmeden derse geçmenizi tavsiye ederim. Bir sonraki bölümde görüşmek üzere 🙂

Yorum bırakın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Scroll to Top