TurkPhp.Com

» Ana Sayfa » TürkPhp » Dosyalar » Forumlar » Makaleler » Linkler Hızlı Menü:

06 Ocak 2009 Salı 05:51

 
TürkPhp.Com Menü
» Ana Sayfa
» PHP Hakkında
» Kitaplar
» Haberler
» Forumlar
» Makaleler
» Ajax
» Hazır Sistemler
» Dosya Arşivi
» Veritabanı
» Ruby
»» Ruby Kurulumu
»» Ruby Download
»» Ruby Linkleri
» Bağlantılar
» İletişim
 
 
Linkler
Ruby Central Sitesi
Ruby Döküman Sitesi
Ruby Forge Sitesi
Ruby Central
Ruby on Rails Web Sitesi
Ruby programlama dili - Vikipedi
Ruby Resmi Web Sitesi
Tercih Market
SaldemSoft
PHPClassesTR
 
Mini Anket
TurkPhp.Com Hangi konuya ağırlık vermeli?
Görsel Anlatım
Basit Konular
Gelişmiş Konular
Güvenlik
Veritabanı
Hazır Sistemler
Forum
Makale
Dosyalar
Hepsine :)
  

 

 
 
 Alt Kategoriler
  Ruby ve Yordam Nesneleri

Beklenmeyen durumlara cevap verebilme genelde istenen bir durumdur. Eğer diğer yöntemlere kod bloklarını argüman olarak geçebilirsek yani koda bir veriymiş gibi davranabilirsek bu işi oldukça kolaylaştırmış oluruz.

Yeni bir yordam nesnesi, proc kullanılarak oluşturulur:

ruby>   quguk = proc {
| print "GUGUKGUGUKGUGUK!!!\n"
| }
#<Proc:0x4017357c>

Artık guguk bir nesne belirtiyor ve onun da diğer nesneler gibi istenebilir davranışları vardır. call yöntemi sayesinde bu davranışları talep edebiliriz:

ruby>   guguk.call
GUGUKGUGUKGUGUK!!!
nil

Peki tüm bunlardan sonra, guguk bir yöntem argümanı gibi kullanılabilir mi? Tabii ki.

ruby>   def run( p )
| print "Bir yordamı çağırıyoruz...\n"
| p.call
| print "Bitti.\n"
| end
nil
ruby> run quux
Bir yordamı çağırıyoruz...
GUGUKGUGUKGUGUK!!!
Bitti.
nil

trap yöntemi aldığımız cevabı tercihimize göre istediğimiz sistem sinyaline atamamıza izin verir.

ruby>   inthandler = proc{ print "^C basıldı.\n" }
#<Proc:0x401730a4>
ruby> trap "SIGINT", inthandler
#<Proc:0x401735e0>

Normalde ^C'ye basmak yorumlayıcıdan çıkmamızı sağlar. Ancak şimdi bir ileti yazıldı ve yorumlayıcı hala çalışmaya devam ediyor, böylece yaptığınız işi kaybetmemiş oluyorsunuz. (Yorumlayıcıda sonsuza dek kapana kısılmadınız, hala exit yazarak ya da ^D'ye basarak çıkabilirsiniz.)

Başka konulara geçmeden önce son bir not: bir yordamı bir sinyale bağlamadan önce ona illa ki isim vermek gerekli değildir. Anonim bir yordam nesnesi aşağıdaki gibi olabilir:

ruby>   trap "SIGINT", proc{ print "^C basıldı.\n" }
nil

daha kısa şekilde,

ruby>   trap "SIGINT", 'print "^C basıldı.\n"'
nil

Bu kısaltılmış biçim, küçük anonim yordamlar yazdığınızda okunabilirlik sağlar.

Bu sayfayı daha önce 102 kişi görüntüledi.
Geri
 
 
Üyeler için
Kullanıcı
Şifre

Kod:

   
» Üye Ol
» Şifrem?
 
 
Editör ve Yazarlarımız
Ahmet CANALP Ahmet CANALP
CSS Harici Şablon Dosyaları ve Katman Özellikleri
Mehmet CAN Mehmet CAN
mysql_select_db fonksiyonu
 
 



PhpClasses.org

 
 
 
 
 
TurkPhp.Com © 2000-2006 Tüm hakları saklıdır. Kaynak gösterilemeden yayınlanamaz. Sayfa Üretimi: 0.0335