Son İletiler

#1
Groovy / Groovy Operatörler: Kapsamlı v...
Son İleti Gönderen Nobef - Nis 15, 2025, 03:15 ÖS
Groovy, Java platformunda çalışan, dinamik ve esnek bir programlama dilidir. Operatörleri, hem Java'dan miras alınan klasik operatörleri hem de Groovy'ye özgü pratik yenilikleri içerir. Bu rehberde, Groovy operatörlerini detaylı bir şekilde açıklayacak, her birine kod örnekleri sunacak ve sıkça sorulan sorular (FAQs) ile içeriği zenginleştireceğiz.

Groovy'de Operatör Kategorileri
Groovy operatörleri şu ana başlıklarla gruplandırılabilir:
  • Aritmetik Operatörler
  • İlişkisel Operatörler
  • Mantıksal Operatörler
  • Atama Operatörleri
  • Bitwise Operatörler
  • Elvis ve Null-Safe Operatörleri
  • Spread ve Range Operatörleri

Şimdi her bir kategoriyi örneklerle inceleyelim.

1. Aritmetik Operatörler
Aritmetik operatörler, temel matematiksel işlemler için kullanılır. Bunlar toplama (+), çıkarma (-), çarpma (*), bölme (/), modül (%) ve üs alma (**)'dır.

Örnek Kod:
def x = 15
def y = 4

println "Toplama: ${x + y}"    // Çıktı: Toplama: 19
println "Çıkarma: ${x - y}"    // Çıktı: Çıkarma: 11
println "Çarpma: ${x * y}"     // Çıktı: Çarpma: 60
println "Bölme: ${x / y}"      // Çıktı: Bölme: 3.75
println "Modül: ${x % y}"      // Çıktı: Modül: 3
println "Üs: ${x ** 2}"        // Çıktı: Üs: 225


2. İlişkisel Operatörler
İlişkisel operatörler, iki değer arasında karşılaştırma yapar. Bunlar eşitlik (==), eşitsizlik (!=), büyüktür (>), küçüktür (<), büyük veya eşit (>=) ve küçük veya eşit (<=) operatörleridir.
Örnek Kod:
def a = 25
def b = 10

println a == b   // Çıktı: false
println a != b   // Çıktı: true
println a > b    // Çıktı: true
println a <= b   // Çıktı: false

Not: Groovy'de == operatörü, Java'daki .equals() metoduna benzer şekilde nesnelerin içeriğini karşılaştırır.

3. Mantıksal Operatörler
Mantıksal operatörler, boolean ifadeleri birleştirmek için kullanılır. VE (&&), VEYA (||) ve DEĞİL (!) operatörleri bu gruba dahildir.

Örnek Kod:
def hasPermission = true
def isLoggedIn = false

println hasPermission && isLoggedIn    // Çıktı: false
println hasPermission || isLoggedIn    // Çıktı: true
println !isLoggedIn                    // Çıktı: true



4. Atama Operatörleri
Atama operatörleri, değişkenlere değer atamak veya mevcut değerleri güncellemek için kullanılır. Basit atama (=) yanı sıra toplama ve atama (+=), çıkarma ve atama (-=), çarpma ve atama (*=), bölme ve atama (/=) ve modül ve atama (%=) gibi bileşik operatörler bulunur.

Örnek Kod:
def value = 20
value += 10    // value = 30
value *= 2     // value = 60
value /= 4     // value = 15
println value  // Çıktı: 15


5. Bitwise Operatörler
Bitwise operatörler, sayılar üzerinde bit seviyesinde işlemler yapar. Bunlar bitwise VE (&), bitwise VEYA (|), bitwise XOR (^), bitwise DEĞİL (~), sola kaydırma (<<) ve sağa kaydırma (>>) operatörleridir.

Örnek Kod:
def x = 6  // Binary: 0110
def y = 3  // Binary: 0011

println x & y   // Çıktı: 2 (0010)
println x | y   // Çıktı: 7 (0111)
println x ^ y   // Çıktı: 5 (0101)
println x << 1  // Çıktı: 12 (1100)



6. Elvis ve Null-Safe Operatörleri
Groovy, null kontrollerini kolaylaştırmak için iki güçlü operatör sunar:
  • Null-Safe Operatör ( ?. ): Bir nesne null ise hata fırlatmadan işlemi atlar.
  • Elvis Operatörü ( ?: ): Bir değer null ise varsayılan bir değer sağlar.

Örnek Kod:
def username = null
def length = username?.length()    // Hata fırlatmaz, null döner
println length                     // Çıktı: null

def displayName = username ?: "Ziyaretçi"
println displayName                // Çıktı: Ziyaretçi


7. Spread ve Range Operatörleri
  • Spread Operatörü (*.): Bir listenin elemanlarını yaymak için kullanılır.
  • Range Operatörü (..): Belirli bir aralığı temsil eder.

Örnek Kod:
def numbers = [1, 2, 3]
def doubled = numbers*.multiply(2)    // Her elemanı 2 ile çarpar
println doubled                       // Çıktı: [2, 4, 6]

def range = 1..5
println range                         // Çıktı: [1, 2, 3, 4, 5]


Sıkça Sorulan Sorular (FAQs)
Soru 1: Groovy'de == operatörü Java'daki equals() ile aynı mı?
Cevap: Evet, Groovy'de == operatörü nesnelerin içeriğini karşılaştırır ve Java'daki .equals() metoduna benzer. Referans karşılaştırması için === operatörü kullanılabilir.

Soru 2: Null-Safe operatör ne zaman kullanılmalı?
Cevap: Null-Safe operatör (?.), bir nesnenin null olabileceği durumlarda NullPointerException'ı önlemek için idealdir. Örneğin, bir nesnenin metodunu veya özelliğini çağırırken.

Soru 3: Elvis operatörü başka dillerde de var mı?
Cevap: Elvis operatörü ( ?: ), Groovy'ye özgü bir yapı olmasa da Kotlin gibi diğer modern dillerde benzer yapılar bulunur. Groovy'de null kontrolünü kısa ve okunabilir hale getirir.

Soru 4: Spread operatörü hangi senaryolarda faydalı?
Cevap: Spread operatörü, bir koleksiyonun her elemanına aynı işlemi uygulamak istediğinizde kullanışlıdır. Örneğin, bir listedeki her elemanı dönüştürmek veya metod çağırmak için.

Soru 5: Groovy'de operatör önceliği Java ile aynı mı?
Cevap: Evet, Groovy operatör önceliği Java ile aynıdır. Örneğin, çarpma ve bölme, toplama ve çıkarmadan önce değerlendirilir.

Sonuç
Groovy operatörleri, hem Java'nın sağlam altyapısını kullanır hem de dinamik ve kısa söz dizimiyle geliştiricilere kolaylık sağlar. Aritmetik işlemlerden null kontrollerine, koleksiyon işlemlerinden bit manipülasyonuna kadar geniş bir yelpazede araç sunar. Bu rehberdeki örnekleri kullanarak Groovy operatörlerini projelerinizde etkin bir şekilde uygulayabilirsiniz.
#2
C# / C# Örneklerle FOR Döngüsü (Vid...
Son İleti Gönderen Nobef - Eyl 05, 2024, 03:53 ÖS
#3
Swift / Swift: Opsiyoneller (Video Anl...
Son İleti Gönderen Nobef - Eyl 05, 2024, 03:52 ÖS
#4
Kotlin / Kotlin For ve Foreach Döngüler...
Son İleti Gönderen Nobef - Eyl 05, 2024, 03:51 ÖS
#5
Python / Python'da Mantıksal Yapılar ve...
Son İleti Gönderen Nobef - Eyl 05, 2024, 03:51 ÖS
#6
C# / C# Arayüz - Interface Oluşturm...
Son İleti Gönderen Nobef - Tem 24, 2024, 02:53 ÖS
#7
C# / C# Listeler Kavramını Öğreniyo...
Son İleti Gönderen Nobef - Tem 24, 2024, 02:52 ÖS
#8
C# / C# While Döngüsünü Öğrenelim (...
Son İleti Gönderen Nobef - Tem 24, 2024, 02:51 ÖS
#9
C# / C# Dizi Özellikleri ve Yönteml...
Son İleti Gönderen Nobef - Tem 24, 2024, 02:50 ÖS
#10
Perl / Perl: Çeşitli Operatörleri Tan...
Son İleti Gönderen Nobef - Tem 24, 2024, 02:49 ÖS