TurkPhp.Com

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

06 Ocak 2009 Salı 08:15

 
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 Yerel Değişkenler

Yerel değişkenler küçük harfle ya da _ karakteriyle başlayan isimlere sahiptirler. Yerel değişkenler genel ya da örnek değişkenlerde olduğu gibi, başlangıçta nil değerine sahip değildirler.

ruby>   $foo
nil
ruby> @foo
nil
ruby> foo
ERR: (eval):1: undefined local variable or method `foo' for main(Object)

Yerel bir değişkene yaptığınız ilk atama onu bildirmekle aynı şeydir. Eğer başlangıç değeri olmayan bir yerel değişkene başvurursanız, Ruby yorumlayıcısı bunun bir yöntemi çalıştırma girişimi olduğunu düşünür ve aşağıdaki gibi bir hata verir.

Genelde yerel bir değişkenin etki alanı aşağıdakilerden biridir:

  • proc{ ... }
  • loop{ ... }
  • def ... end
  • class ... end
  • module ... end
  • yazılımın tamamı (yukarıdakilerden herhangi biri yoksa)

Aşağıdaki örnekte görülen defined? işleci bir belirtecin tanımlanıp tanımlanmadığına bakar. Eğer tanımlanmışsa bir açıklama döndürür; tanımlanmamış ise nil değerini döndürür. Gördüğünüz gibi bar döngüde yerel, döngüden çıkınca tanımsızdır.

ruby>   foo = 44; print foo, "\n"; defined? foo
44
"local-variable"
ruby> loop{bar=45; print bar, "\n"; break}; defined? bar
45
nil

Yordam nesneleri yynı etki alanındaki yerel değişkenleri paylaşırlar. Örnekte yerel değişken bar, main ve yordam nesneleri p1 ve p2 tarafından paylaşılmaktadır:

ruby>   bar=nil
nil
ruby> p1 = proc{|n| bar=n}
#<Proc:0x8deb0>
ruby> p2 = proc{bar}
#<Proc:0x8dce8>
ruby> p1.call(5)
5
ruby> bar
5
ruby> p2.call
5

Baştaki "bar=nil"'ın çıkarılamayacağına dikkat edin; bu atama bar'ın p1 ve p2 tarafından kuşatılacağını garanti eder. Öteki türlü p1 ve p2 kendi yerel bar değişkenlerini sonlandırır ve p2'yi çağırmak "undefined local variable or method" hatasına neden olabilir.

Yordam nesnelerinin güçlü bir özelliği de argüman olarak aktarılabilme yetenekleridir: paylaşımlı yerel değişkenler özgün etki alanının dışından değer aktarıldığında bile geçerli kalırlar.

ruby>   def kutu
| icerik = 15
| getir = proc{icerik}
| ata = proc{|n| icerik = n}
| return getir, ata
| end
nil
ruby> okur, yazar = kutu
[#<Proc:0x40170fc0>, #<Proc:0x40170fac>]
ruby> okur.call
nil
ruby> yazar.call(2)
2
ruby> okur.call
2

Ruby etki alanı konusunda bir parça akıllıca davranır. Örneğimizde icerik değişkeni okur ve yazar tarafından paylaşılıyordu. Aynı zamanda yukarıda tanımladığımız kutumuzdan birden çok okur-yazar çifti oluşturabilir ve her çiftin aynı sabiti paylaşmasını sağlayabiliriz.

ruby>   okur_1, yazar_1 = kutu
[#<Proc:0x40172820>, #<Proc:0x4017280c>]
ruby> okur_2, yazar_2 = kutu
[#<Proc:0x40172668>, #<Proc:0x40172654>]
ruby> yazar_1.call(99)
99
ruby> okur_1.call
99
ruby> okur_2.call
nil
Bu sayfayı daha önce 125 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.0284