![]() Önceki |
![]() İçindekiler |
![]() Sonraki |
| Ruby Kullanıcı Kılavuzu | Global Değişkenler |
Global değişkenler isimlerinin başında birer $ işareti bulundururlar. Global değişkenler programın herhangi bir yerinden başvurulabilirler. Başlangıç değeri atamadan önce nil değerine sahiptirler.
ruby> $foo nil ruby> $foo = 5 5 ruby> $foo 5 |
Global değişkenler kısıtlı kullanılmalıdırlar. Her yerden yazılabilindikleri için tehlikelidirler. Global değişkenlerin aşırı kullanılması yanlışları izole etmede zorluk çıkarabildiği gibi programın iyice düşünülmeden tasarlandığına dikkat çeker. Globaldeğişken kullanmayı uygun gördüğünüz zaman, onlara anlaşılabilir isimler verdiğinizden emin olun ( $foo gibi birşey çağırmak oldukça kötü bir fikir değil mi?).
Global değişkenlerin güzel bir özelliği de izlenebilir olmalarıdır; bir değişkenin değeri ne zaman değişirse o zaman çağrılan bir prosedür belirleyebilirsiniz.
ruby> trace_var :$x, proc{print "$x is now ", $x, "\n"}
nil
ruby> $x = 5
$x is now 5
5 |
Bir global değişken, değiştiği zaman bir prosedürü çalıştırmak için kullanılıyorsa, aktif değişken olarak da anılır.
Aşağıda $ işaretini takiben tek bir karakter daha içeren bir dizi özel değişken bulunuyor. Örneğin $$ Ruby yorumcusunun süreç numarasını (process id) içerir ve sadece okunabilirdir. Aşağıda önemli sistem değişkenleri ve anlamları bulunuyor: (ayrıntılar için Ruby Referans Kılavuzu'na bakın):
$! | son hata mesajı |
$@ | hatanın konumu |
$_ | gets tarafından okunan son dizgi |
$. | yorumlayıcı tarafından son okunan satır numarası |
$& | düzenli ifadeler tarafından son bulunan dizgi |
$~ | alt ifadeler (subexpression) dizisi olarak düzenli ifadeler tarafından bulunan son ifade |
$n | son bulunan n'inci alt ifade ($~[n] ile aynı) |
$= | büyük- küçük harfe duyarsız bayrak |
$/ | girdi kayıdı ayırıcısı (input record separator) |
$\ | çıktı kayıdı ayırıcısı (output record separator) |
$0 | ruby betik dosyasının adı |
$* | komut satırı argümanları |
$$ | yorumcunun süreç ID'si |
$? | son işletilen çocuk sürecin çıkış durumu |
$_ ve $~ yerel kapsama sahiptir. Her ne kadar isimleri gereği global değişkenler olmaları gerekiyorsa da böyle daha kullanışlıdırlar.
![]() Önceki |
![]() İçindekiler |
![]() Sonraki |