Ruby Dersleri | Ön Tanımlı Değişkenler #3

Talhaa05

Yeni üye
14 Mar 2022
26
25
N0FPWLq.png


Merhabalar, Değerli TürkHackTeam Ailesi!
Uzun zaman önce ruby derslerinin #2 sini işlemiştik!
Bu konumuzda Ruby Derslerine devam ediyoruz!
Keyifli Okumalar!

F3beZqk.png

Ö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;
Ruby:
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şkenAçı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, ..., $9Yine, 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)
$DEBUGAdı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.
$KCODEKod 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.
$FILENAMEKomut 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)
$SAFEGü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!
$stdinStandart giriş.
$stdoutStandart çıkış.
$stderrGiriş/Çıkış hata bildirimi.
$VERBOSEKernel 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.
$-aKomut 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.
$-iBu değişken in-place-edit modda extension'ı saklar.
$-I$: ile aynı işi yapar. (Büyük i)
$-lEğer -lis set edilmişse true döner. Read Only yani sadece okunur, değeri değiştirilemez! (Küçük l)
$-pEğ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.
$-wEğer -w set edilmişse true döner.
$-WWarning 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.

F3beZqk.png

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şkenAçıklama
selfAlıcı nesnenin o anki aktif metod'u. Yani bu bir Class ise kendisi...
nilTanımı olmayan şeylerin değeri
true true yani 1
falsetrue'nun tersi yani 0
__FILE__Çalışan kaynak kod dosyasının adı
__LINE__Çalışan kaynak kod dosyasındaki, o anki aktif satır numarası

Sonuç
gBPwFuWw_o.png

Bu derste Ruby'nin ön tanımlı değişkenlerini inceledik
diğerki konularda görüşmek üzere!
İyi Forumlar!
 

teux

Katılımcı Üye
23 Ocak 2023
929
1,223
Genç Atsızlar
N0FPWLq.png


Merhabalar, Değerli TürkHackTeam Ailesi!
Uzun zaman önce ruby derslerinin #2 sini işlemiştik!
Bu konumuzda Ruby Derslerine devam ediyoruz!
Keyifli Okumalar!

F3beZqk.png

Ö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;
Ruby:
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şkenAçı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, ..., $9Yine, 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)
$DEBUGAdı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.
$KCODEKod 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.
$FILENAMEKomut 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)
$SAFEGü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!
$stdinStandart giriş.
$stdoutStandart çıkış.
$stderrGiriş/Çıkış hata bildirimi.
$VERBOSEKernel 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.
$-aKomut 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.
$-iBu değişken in-place-edit modda extension'ı saklar.
$-I$: ile aynı işi yapar. (Büyük i)
$-lEğer -lis set edilmişse true döner. Read Only yani sadece okunur, değeri değiştirilemez! (Küçük l)
$-pEğ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.
$-wEğer -w set edilmişse true döner.
$-WWarning 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.

F3beZqk.png

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şkenAçıklama
selfAlıcı nesnenin o anki aktif metod'u. Yani bu bir Class ise kendisi...
nilTanımı olmayan şeylerin değeri
truetrue yani 1
falsetrue'nun tersi yani 0
__FILE__Çalışan kaynak kod dosyasının adı
__LINE__Çalışan kaynak kod dosyasındaki, o anki aktif satır numarası

Sonuç
gBPwFuWw_o.png

Bu derste Ruby'nin ön tanımlı değişkenlerini inceledik
diğerki konularda görüşmek üzere!
İyi Forumlar!
elinize sağlık
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.