Ö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. rescue ile 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. print ve 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ı |