Eğer parmaklarımızı çok yormadan defalarca “Hello” demek istersek ? Bir metot tanımlamamız gerekiyor!
def hi
kodu ile metot tanımlaması başlar. Bu Ruby’ye adı hi
olan bir
metot tanıtımı (definition) başlattığımızı bildirir. Sonraki satır
metodun gövdesini oluşturur. Daha önce gördüğümüz gibi: puts "Hello
World"
. Son satırdaki end
Ruby’ye metot tanımlamasını bitirdiğimizi
belirtir. Bu yanıt Ruby 2.0 ve önceki sürümlerde => nil
olabilir. Fakat bu,
şu anda önemli değil, devam edelim.
Kısaca Bir Metot Defalarca Yaşar
Şimdi bu metodu birkaç defa çalıştıralım:
Pekala, bu kolaydı. Ruby’de metotları çağırmak için adlarını Ruby’ye söylemek yeterli. Eğer metot bir parametre almıyorsa tüm yapmanız gereken bundan ibaret. Eğer isterseniz boş parantezlerle parametresiz bir metot çağırdığınızı belirtebilirsiniz, ama gereği yok.
Eğer dünyaya değil de bir kişiye merhaba demek istersek ne olacak? Hemen
hi
metodunu bu sefer parametre alacak şekilde tekrar tanımlayalım.
Çalıştığını gördükten sonra neler olduğunu tekrar bir inceleyelim.
String İçine Erişmek
#{name}
kısmı nedir? Bu bir string içine birşeyler eklemenin Ruby
yoludur. Süslü parantez içindeki kısım stringe çevrilir ve ana string
içine bu noktada eklenir. Bunu verilen ismin ilk harfinin büyük
olduğundan emin olmak için kullanabilirsiniz:
Burda birkaç diğer şekil görünüyor. Biri metodu parantez kullanmadan
çağırıyoruz. Eğer ne yaptığınız belli ise parantezler keyfe bağlı kullanılır.
Diğer şekil varsayılan parametre değeri World
. Bunun
anlamı eğer parametre verilmediyse name
değeri varsayılan olarak
"World"
alınacaktır.
Bir Selamlayıcıya Dönüştürmek
Eğer bir selamlayıcı yapmak istersek, adınızı hatırlayacak ve sizi karşılayacak, sonra uğurlayacak. Bunu yapmak için bir nesne kullanmak isteyebilirsiniz. Bir “Greeter” sınıfı oluşturalım.
Buradaki yeni kelime class
. Bu Greeter adı verilen bir sınıf ve içinde
birkaç metot tanımlar. Ayrıca dikkat ederseniz @name
bu sınıfın bir
örnek değişkeni ve sınıfın tüm metodlarının erişimine açık. Göreceğiniz gibi
say_hi
ve say_bye
metotları içinde kullanılıyor.
Peki bu Greeter sınıfını nasıl çalıştıracağız? Bir nesne üretin.