Operatörler
Operatörler çeşitli kontrolleri yapmak için kullanılır. Hatta bazıları aynı zamanda method olarak çalışır. Bazı operatörlerin birden farklı işlemi vardır. Örneğin +
hem matematik işlemi olan toplama için hem de pozitif değer kontrolü için kullanılabilir.
Operatör | Açıklama | Method mu? |
---|---|---|
:: | İki tane iki nokta. Scope resolution anlamındadır. Class ve Modül konusunda detayları göreceğiz. | |
[] | Referans, set | Evet |
[]= | Referans, set | Evet |
** | Üssü, kuvveti | Evet |
+ | Pozitif | Evet |
- | Negatif | Evet |
! | Mantıksal uzlaşma | |
~ | Tamamlayıcı | Evet |
* | Çarpma | Evet |
/ | Bölme | Evet |
% | Modülo (Kalan) | Evet |
+ | Ekleme | Evet |
- | Çıkartma | Evet |
<< | Sola kaydır | Evet |
>> | Sağa kaydır | Evet |
& | Bit seviyesinde and (Ve) işlemi | Evet |
| | Bit seviyesinde or (Veya) işlemi | Evet |
^ | Bit seviyesinde exclusive or (Veya'nın tersi gibi) işlemi | Evet |
> | Büyüktür | Evet |
>= | Büyük ve eşit | Evet |
< | Küçüktür | Evet |
<= | Küçük ve eşit | Evet |
<=> | Eşitlik karşılaştırma operatörü (Spaceship yani uzay gemisi ) | Evet |
== | Eşitlik | Evet |
=== | Denklik | Evet |
!= | Eşit değil | |
!~ | Yakalanmayan (not match) | |
=~ | Yakalanan (match) | Evet |
&& | Mantıksal ve (and) | |
|| | Mantıksal veya (or) | |
.. | Range'i kapsayan | Evet |
... | Range'i kapsamayan | |
? : | Ternary | |
= | Atama | |
+= | Arttırma ve atama | |
-= | Eksiltme ve tama | |
*= | Çarpma ve atama | |
/= | Bölme ve atama | |
%= | Modülo ve atama | |
**= | Üssü ve atama | |
<<= | Bit seviyesinde sola kaydırma ve atama | |
>>= | Bit seviyesinde sağa kaydırma ve atama | |
&= | Bit seviyesinde and ve atma | |
|= | Bit seviyesinde or ve atama | |
^= | Bit seviyesinde eor ve atama | |
&&= | Mantıksal and ve atama | |
||= | Varlık ataması (Existential Operator) |
İlk bakışta insanın aklını durduran bir sürü garip işaretler bunlar değil mi? Hemen örneklerle pekiştirelim.
a = []
a.class # => Array
a.length # => 0
[]=
Kullanım Örneği
a = [] # Bu bir dizi / Array
a.[]=5,"Merhaba" # 0 indekli, 5.eleman Merhaba olsun
p a # [nil, nil, nil, nil, nil, "Merhaba"]
Unary Operatörleri
Unary demek, +=
, -=
, *=
gibi işlemleri yaptığımız operatörler. Yani x+= 5
dediğimizde (x'in değerine 5 ekle ve sonucu tekrar x'e ata) aslında Unary operatörü kullanmış oluruz.
Keza, aşağıdaki örnekteki gibi kullanımlarda ek fayda sağlamış oluruz:
str = "Merhaba Dünya"
class String
def -@
reverse
end
end
p str # "Merhaba Dünya"
p -str # "aynüD abahreM"