TCL Serisi Bölüm 3 – Değişken Atamaları

Tcl, verileri string olarak saklar ve yalnızca hesaplamalar veya karşılaştırmalar için gerektiğinde sayılara dönüştürür.

Tcl’de atama operatörü set komutudur. Bu komutu özellikle EDA otomasyonunda kullanacağınız parametrelere değer verirken çok kullanacaksınız. O yüzden hadi bu basit bölümü eksiksizce öğrenelim 🙂

set iki argümanla çağrıldığında, örneğin:

set hayvan "Penguen";

ikinci argümanı (“Penguen”) birinci argümanın (hayvan) referans verdiği bellek alanına yerleştirir. Set her zaman birinci argümanda belirtilen değişkenin içeriğini döner. Dolayısıyla, set iki argümanla çağrıldığında, ikinci argümanı birinci argümanın referans verdiği bellek alanına yerleştirir ve ardından ikinci argümanı döner. Daha önce programlama deneyimi az olanların bu konuda deneme yaparak öğrenmesinde yarar olabilir. Eğer kafanıza takılan bir şey olursa bana ulaşabilirsiniz. Sizde bu iş !

Set komutunun birinci argümanı ya hayvan,meyve veya pi gibi tek bir kelime olabilir ya da bir array’in üyesi olabilir. Array konusuna daha sonra daha detaylı olarak göz atacağız, şimdilik sadece birçok verinin tek bir değişken adı altında toplanabileceğini ve bireysel bir veriye bu dizideki indeksiyle erişilebileceğini unutmayın. Vereceğim örnekte konuya aşina olanlar için array’ler de bulunacak. Tcl’de bir diziye indeksleme, değişkenin adından sonra parantez içinde indeks belirtilerek yapılır.

Set tek bir argümanla da çağrılabilir. Yalnızca bir argümanla çağrıldığında, o argümanın içeriğini döner.

İşte set komutunun bir özeti. İnceleyin, ardından Örnek Çalıştır düğmesine tıklayın ve bu metni okurken çıktıyı inceleyin.

set varName ?value?

Eğer value belirtilirse, varName değişkeninin içeriği value‘ye eşit olarak ayarlanır.

Eğer varName yalnızca alfasayısal karakterlerden oluşuyorsa ve parantez içermezse, bu bir skaler değişkendir.

Eğer varName varName(index) formundaysa, bu bir ilişkisel dizinin üyesidir.

Set, varName değişkeninin değerini döner.

Örnek koda bakarsanız, set komutunda birinci argümanın yalnızca adıyla yazıldığını, ancak puts ifadesinde argümanın önüne $ geldiğini fark edeceksiniz.

Bu, Tcl’in verileri alt rutinlere ya referansla ya da değerle geçirmesinden kaynaklanır. Bir değişkenin içeriğini değiştirmeyen komutlar genellikle argümanlarını değerle geçirir. Değerin içeriğini değiştiren komutların ise veriyi referansla geçirmesi gerekir.

Hadi örnek kodumuza bakalım. Koddaki yorum satırlarını takip ederek lütfen kendi kodunuzu yazın ve “Ya şöyle yapsaydık ne olurdu ?” dediğiniz yerler var ise online aracı kullanarak deneyin:

Kullanabileceğiniz her şekilde set komutunu sizlere göstermeye çalıştım. Kodun çıktısını koymak yerine sizlere kodun içinde bulunduğu online aracı da verdim. Orayı kullanarak set komutuyla oynayabilir ve sorularınız varsa bana ulaşabilirsiniz.

Yorum bırakın

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

Scroll to Top