Ö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
| 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ı |