![]() |
![]() |
![]() |
|||||||||||||||||||||||||||
|
Ruby - Basit Örnekler Şimdi faktöriyel hesabı yapan basit bir işlev yazalım. Faktöriyel'in matematiksel tanımı şöyledir:
n! = 1 (n==0 ise) = n * (n-1)! (aksi taktirde) Ruby'de bunu aşağıdaki gibi yazabiliriz: def fact(n) Tekrarlanan end deyiminin varlığını fark etmiş olmalısınız. Sırf bu yüzden Ruby "Algol benzeri" olarak anılır. (Aslında Ruby'nin sözdizimi Eiffel dilini daha çok andırmaktadır.) Ayrıca return deyiminin eksikliğini de hissetmiş olmalısınız. Bu deyim Ruby için gereksizdir çünkü bir Ruby işlevi değerlendirdiği en son şeyi geri döndürür. return deyimi kullanılabilir ancak gereksizdir. Şimdi faktöriyel işlevimizi deneyelim. Ekleyeceğimiz bir satır, bize çalışan bir yazılım sunacaktır: # Sayının faktöriyelini bulan yazılım Burada ARGV komut satırı argümanlarını içeren bir dizidir ve to_i alınan bir dizgeyi tamsayıya çevirmeye yarar. $ ruby fact.rb 1 Acaba argüman olarak 40 versek çalışır mı? Muhtemelen hesap makineniz taşma hatası verecektir... $ ruby fact.rb 40 Bu çalışır, üstelik Ruby makinenizin belleğinin izin verdiği kadar tamsayıyla da çalışabilir. 400 için aşağıdaki gibi bir çıktı alacaksınız: $ ruby fact.rb 400 Sonucun doğruluğunu kontrol edemeyiz ama öyle olması gerekiyor :). Girdi/Değerlendirme döngüsü Eğer Ruby'yi hiçbir argüman olmadan çağırırsanız, komutları standart girdi olarak alır ve girdinin bitiminde komutları çalıştırır: $ ruby Ruby, eval.rb adında bir araç ile gelir. Bu, ruby kodunuzu etkileşimli olarak klavyeden alan ve yazdıklarınızı gösteren bir araçtır. Bu öğreticinin devamında sıkça kullanacağız. Eğer ANSI uyumlu bir uçbirimle çalışıyorsanız[90], ek olarak girintileme yapabilen, kodu renklendirebilen ve uyarılar veren gelişmiş eval.rb 'yi kullanmalısınız. Aksi takdirde, ruby dağıtımının sample dizininde bulunan ve ANSI uyumluluğu gerektirmeyen sürümünü kullanabilirsiniz. Kısa bir eval.rb oturumu:$ ruby eval.rb Merhaba dünya, puts ile çıktılandı. Sonraki satırdaki nil ise son değerlemenin sonucunu göstermektedir; ruby, deyimlerle ifadeler arasında bir ayrım yapmaz, yani kod parçalarının değerlendirilmesi temel olarak kodun icra edilmesidir. Burada nil, print'in anlamlı bir değer döndürmediğini ifade etmektedir. Son olarak, exit yazarak yorumlayıcı döngüsünü sonlandırıyoruz. Bu kılavuzun devamında ruby> bir eval.rb oturumunun girdi istemi olarak kullanılmış olacaktır. [90] Unix altında çalışıyorsanız zaten uçbirim ANSI uyumludur; DOS altında bunu sağlamak için ANSI.SYS veya ANSI.COM yüklemelisiniz. Bu belgenin, Ruby Kullanıcı Kılavuzu çevirisinin 1.0 sürümünün telif hakkı © 2005 Pınar Yanardağ'a, özgün İngilizce sürümünün telif hakkı © 2003 Mark Slagel'a aittir. Bu belgeyi, Free Software Foundation tarafından yayınlanmış bulunan GNU Özgür Belgeleme Lisansının 1.2 ya da daha sonraki sürümünün koşullarına bağlı kalarak kopyalayabilir, dağıtabilir ve/veya değiştirebilirsiniz. Bu Lisansın bir kopyasını GNU Free Documentation License başlıklı bölümde bulabilirsiniz. Pınar Yanardağ'a teşekkür ederiz. Okan ATABAĞ okanatabag@gmail.com Yorumlar ![]() Hiç yorum yapılmamış |
Oturum Açmadınız
Ruby ![]()
Üyelik ![]() » Üye Değilim » Aktivasyon » Şifremi Unuttum » Üye Girişi Menü ![]() Arama ![]() |
||||||||||||||||||||||||||||
![]() |
![]() |
![]() |
|||||||||||||||||||||||||||