Ruby Günlüğü – Gün 7

Sabitler

Daha önce söylemiştim, Ruby case-sensitive bir dildir. Hemde Ruby’de bu büyük-küçük harf olayı arka planda çok farklı anlamlar doğurabiliyor. Şöyle görelim :

Pi = 2 dedik ve ekrana bastırdı, daha sonra Pi=200 dedik, yine ekrana bastırdı ama bi uyarı verdi “already initialized constant Pi” yani demek oluyor ki, “eyy yazılımcı daha önceden Pi sabitine başka bir değer vermiştin”.

Yazılımcı olarak bizde diyoruz ki “ama ben onun sabit olduğunu söylemedim ki sana?”, Ruby de hemen yapıştırıyor cevabı “o zaman niye büyük harfle başladın arkadaşım !”.

Değişken için denedik (x) olarak herhangi bir hata almadık. Aslında ismi “sabit” olmasına rağmen onuda değiştirebiliyoruz, ama Ruby’den bu uyarıyı alarak. İnanmadık ve birde Xi sabiti oluşturduk, evet demek ki Ruby’de işler böyle yürüyormuş.

Bir değişken tanımlamasında, ilk harfi büyük yaparsak, o artık bir değişken türü olan “sabitler”e dahil oluyormuş.

Daha önce sınıflarıda böyle tanımladığımızı hatırlayın! Baş harfleri büyüktü. Sınıflarda, programın sabitleri sayılabilir.

Text ve Stringler

Şimdi Ruby’ye dönmeden önce, söylemek isterim ki, daha önce okuduğum bir Python3 kitabında “String” konusu tam 200 sayfa boyunca anlatılmıştı, yani aslında çok önemli bir konu, ama bu kadarda sıkmaması lazım değil mi 🙂

Program içerinde string kullanmanın birçok yolu var, ancak çoklu satırda string kullanımı için Python’da 3 tane çift tırnak kullanıyorduk açılış ve kapanış için. Ruby’de ise bunu “%q” ile yapmaktayız, bir nevi kaçış ifadesi.

Burada %q’nun kaçınılmaz olduğunu bilmemiz gerekir, bunu kullanmalıyız ancak { } ifadeleri tamamen bizim isteğimize kalmış.

Açılış ve kapanışı ifade eden herhangi başka birşey de kullanılabilir.

veya

veya

Artık nasıl hoşunuza giderse.

Burada dikkat edilmesi gereken şey şu, açılış ve kapanış için yazıda kullanmayacağız bir karakter seçmeniz ! Bu çok önemli, yoksa Ruby doğal olarak sizin nerede bu string dizisiniz kapattığınız anlayamaz, o da şöyle ki ;

Doğal olarak hata verecektir.

%q’ya alternatif olarak birde “<<herhangi_birsey” var. Kullanım aynı;

String Karşılaştırma

Stringleri de rakamlarda olduğu gibi “< ve >” gibi ifadelerle karşılaştırabiliyoruz.

Peki neye göre yapılıyor bu karşılaştırma? ASCII değerlerine göre.

Bir stringin ASCII değerini görmek için başına “?” koymamız yeterli.

Şu adreste daha detaylı açıklamada var ; http://en.wikipedia.org/wiki/ASCII

Hep dedim yine diyorum, bir IDE kullanın ! IDE kullanmamak, bilgisayar dersinde daktiloyla not tutmaya benziyor. Çalışır, sorun vermez ama aptalca.

Interpolation

En kısa tabiriyle, string içine ifade gömme işlemine Ruby’de “interpolation” deniyor.

Şu vakte kadar yazdığımız programlarda, değişkenleri tanımladık, çeşitli işlemler yaptırdık ve ekrana bastırdık.

Ama günü-birlik kod yazmaktan öte geçmedik, yazdığımız kod kullanıcı dostu değildi ve tam olarak işlerin nasıl yürüdüğünü anlamak güçtü. Şimdi bu sorunu çözelim.

x = 20 ve y = 30 olsun. Bunları tanımladık, ekrana da 20 + 30 = 50 yazdırmak istiyoruz. Şuana kadar öğrendiklerimizle bunu nasıl yaparız ?

Kötü kod yazmaya en güzel örnek oldu sanırım. Burada bir virgülün yanlış yazılması veya bir ” işaretinin eksik olması hata verdirecek.

Tabi ki tek çare bu değil, rakamları stringe çeviripte kullanada bilirdik. O da oldukça zahmetli ;

Oysa ki Ruby’de şöyle güzel imkanlar var ;

Bu örnekler de, integerları ve aritmetik ifadeyi, string içine interpolate ettik.

Stringleri – string içine de interpolate edebiliyoruz :

Akıllıca bir örnek vardı kitapta, paylaşayım ;

Bir sonra ki gün, uzun uzun düzenli ifadeler hakkında yazacağım, görüşmek üzere.

Leave a Reply