Skip to content

Ön Tanımlı Değişkenler

Ruby, bir kısım ön tanımlı yani Predefined değişkenlerle geliyor. Değişkenlerin ne olduğunu;

puts global_variables
şeklinde görebiliriz. Önden bu bilgileri vermek zorundayım, daha geniş kullanımı ve tam olarak ne işe yaradıklarını ileriki bölümlerde daha iyi anlayacaksınız.

Değişken Açıklama
$! raise ile atanan exception bilgisidir. rescueile erişilir.
$@ Son exception'a ait backtrace (bir tür log) bilgilerinin tutulduğu dizi (Array)
$& Son yakalanan match'in tutulduğu String (Regex konusunda göreceğiz)
$` Son yakalanan match'in solunda kalan kısım
$' Son yakalanan match'in sağında kalan kısım
$+ En yüksek group match'in tutulduğu yer. (Regex yaparken group yakalama konusunda göreceğiz)
$1, $2, ..., $9 Yine, Regex ile patern yakalama (pattern matching) yaptığımızda, yakaladığımız şeylerin sıra numarası.
$~ O anki kapsama alanında (scope) son yakalananla ilgili bilgilerin tutulduğu değişken
$= Regex ile uğraşırken, karakterlerin büyük/küçük harfe duyarlılığı ile ilgi ayarlar vardır. Örneğin büyük/küçük harf farkı olmadan aramak yaparken (case insensitive) bu değişkene atama yaparız. Varsayılan değer (default) nil'dir
$/ Dosyadan okuma yapılırken satırların nasıl ayrıldığının tespit edildiği değişkendir. Eğer nil olarak atarnırsa, dosya okuması esnasında satır-satır okuma yerine tüm dosya bir anda okunur.
$\ Bu da çıktı için ayraçtır. printve puts gibi komutlarda IO#write gibi işlemlerde kullanılır. Varsayılan değer nil'dir
$, print ve Array#join de kullanılan ayraçtır.
$; String#split de kullanılan ayraçtır.
$. Dosya işlemlerinde son okunan dosyanın aktif satır numarasını verir.
$< Aynı shell deki ekleme (concatenation) işlemi gibi sanal ekleme yapar.
$> print ve printf işlemi için varsayılan çıktıdır. Varsayılan değeri de $stdout
$_ gets veya readline ile alınan son satırdır, cinsi String'dir.
$0 Çalıştırılan script'in dosya adıdır.
$* Komut satırı işlemlerinde, dosyaya geçilen argümanların saklandığı değişkendir.
$$ Çalıştırılan script'in işlem numarası (Process Number)
$? Çalıştırılan son alt işlemin (Child Process) durumu.
$: Modüller ve ek dosyalar için Path (_Load Path__) bilgisi. require komutunda göreceğiz.
$" require ile yüklenen dosyaların adlarının tutulduğu dizi (Array)
$DEBUG Adından da anlaşıldığı gibi, eğer DEBUG modda çalıştırma yapıyorsak (ki bunu -d ile yaparız) oluşan her exception'ın $stderr değişkenine atanmasını sağlar.
$KCODE Kod yazdığımız script dosyasının encoding tipini seçmemize yarar. Son sürümlerde ihtiyaç kalmadı, her şey default olarak UTF-8 çalışıyor.
$FILENAME Komut satırından argüman olarak dosya geçtiğimizde geçilen dosyanın adını almak için kullanılır. Aslında ARGF.filename ile aynı işi yapar.
$LOAD_PATH $: ile aynı işi yapan alias'dır (alias = takma ad)
$SAFE Güvenlik seviyesidir. Varsayılan değer 0 dır. Bu dereceler 0'dan 4'e kadardır. Kod güvenliği ve kilitleme yapmak için kullanılır. Biraz karmaşık bir konudur :) Örneğin, emin olmadığınız bir kütüphane kullanırken kodunuzu güvenli hale getirmek için, kod bloğunun önüne $SAFE=4 ekerseniz, takip eden kod array hash ve string lerde hiç bir modifikasyon yapamaz! Hatta pek çok şeyi yapamaz!
$stdin Standart giriş.
$stdout Standart çıkış.
$stderr Giriş/Çıkış hata bildirimi.
$VERBOSE Kernel tarafından üretilen tüm uyarı mesajlarının (warning gibi...) görüntülenmesi için kullanılır.
$-0 $/ ile aynı işi yapar.
$-a Komut satırından çalıştırma yaparkan -a ataması yapılmışsa $-a true döner.
$-d $DEBUG ile aynı işi yapar.
$-F $; ile aynı işi yapar.
$-i Bu değişken in-place-edit modda extension'ı saklar.
$-I $: ile aynı işi yapar. (Büyük i)
$-l Eğer -lis set edilmişse true döner. Read Only yani sadece okunur, değeri değiştirilemez! (Küçük l)
$-p Eğer -pis set edilmişse true döner. Read Only yani sadece okunur, değeri değiştirilemez!
$-K $KCODE ile aynı işi yapar.
$-v $VERBOSE ile aynı işi yapar.
$-w Eğer -w set edilmişse true döner.
$-W Warning Level yani oluşabilecek hatalar vs ile ilgili 0, 1 ya da 2.seviyede uyarı mesajları göstermek için.
$LOADED_FEATURES $" ile aynı işi yapar.
$PROGRAM_NAME $0 ile aynı işi yapar.

Pseudo (Gerçek Olmayan) Değişkenler

Değişken (Variable) gibi görünen ama Sabit (Constant) gibi davranan ve kesinlikle değer ataması yapılamayan şeylerdir.

Değişken Açıklama
self Alıcı nesnenin o anki aktif method’u. Yani bu bir Class ise kendisi...
nil Tanımı olmayan (Undefined) şeylerin değeri.
true Mantıksal (Boolean) işlem, anlayacağınız gibi true yani 1
false true'nun tersi (Boolean) yani 0
__FILE__ Çalışan kaynak kod dosyasının adı
__LINE__ Çalışan kaynak kod dosyasındaki, o anki aktif satırın numarası