Operatörler her programlama dilinin temelini oluşturur. Dolayısıyla Golang dilinin işlevselliği operatörler kullanılmadan eksik kalır. Operatörler, operandlar üzerinde farklı tipte işlemler yapmamızı sağlar. Go dilinde operatörler farklı işlevlerine göre sınıflandırılabilir .

Aritmetik operatörler
Bu operatörler Go dilinde operandlar üzerinde işlem yapmak için kullanılır:
- Toplama: '+' iki işleneni toplar. Örneğin: x+y.
- Çıkarma: '-' iki işleneni çıkarır. Örnek: xy.
- Çarpma: '*' iki işleneni çarpar. Örneğin: x*y.
- Bölme: '/' ilk işleneni ikinci işlenene böler. Örneğin: x/y.
- Kalan: '%' operatörü, ilk işlenenin ikinci işlenene bölünmesiyle kalanı döndürür. Örneğin: x%y.
Not: -, +, !, &, *, <- ve ^ aynı zamanda tekli operatörler olarak da adlandırılır ve tekli operatörlerin önceliği daha yüksektir. ++ ve — operatörleri ifadelerden gelir, ifade değildir, dolayısıyla operatör hiyerarşisinin dışında yer alırlar.
Örneğin:
//Minh họa chương trình Go dùng toán tử số học
package main
import "fmt"
func main() {
p:= 34
q:= 20
// Phép cộng
result1:= p + q
fmt.Printf("Result of p + q = %d", result1)
// Phép trừ
result2:= p - q
fmt.Printf("\nResult of p - q = %d", result2)
// Phép nhân
result3:= p * q
fmt.Printf("\nResult of p * q = %d", result3)
// Division
result4:= p / q
fmt.Printf("\nResult of p / q = %d", result4)
// Modulus
result5:= p % q
fmt.Printf("\nResult of p %% q = %d", result5)
}
Sonuç:
Kết quả của p + q = 54
Kết quả của p - q = 14
Kết quả của p * q = 680
Kết quả của p / q = 1
Kết quả của p % q = 14
İlişkisel Operatörler
İlişkisel operatörler iki değeri karşılaştırmak için kullanılır. Her operatöre tek tek bakalım:
- '=='(Eşittir) operatörü, verilen iki işlenenin eşit olup olmadığını kontrol eder. Eşit ise true değerini döndürür. Aksi takdirde false döner. Örneğin, 5==5 true değerini döndürecektir.
- '!='(Eşit değildir) operatörü, verilen iki işlenenin eşit olup olmadığını kontrol eder. Aksi takdirde true döner. Aksi takdirde false döner. Bu, '==' operatörünün tam Boole tamamlayıcısıdır. Örneğin, 5!=5 false değerini döndürecektir.
- '>'(Büyüktür) operatörü, ilk işlenenin ikinci işlenenden büyük olup olmadığını kontrol eder. Daha büyükse true değerini döndürür. Daha az ise false döndürür. Örneğin 6>5 true değerini döndürecektir.
- '<'(küçüktür) operatörü, ilk işlenenin ikinci işlenenden küçük olup olmadığını kontrol eder. Daha az ise true döner. Aksi takdirde false döner. Örneğin, <5 şunu döndürecektir:
- '>='(Büyüktür eşittir) operatörü, ilk işlenenin ikinci işlenenden büyük veya eşit olup olmadığını kontrol eder. Büyük veya eşitse true değerini döndürür. Küçük veya eşitse false döndürür. Örneğin: 5>=5 true değerini döndürecektir.
- '<='(küçük veya eşit) operatörü, ilk işlenenin ikinci işlenenden küçük veya eşit olup olmadığını kontrol eder. Büyük veya eşitse true değerini döndürür. Küçük veya eşitse false döndürür. Örneğin: <=5 de dönecektir
Örneğin:
// Minh họa chương trình Go dùng toán tử quan hệ
package main
import "fmt"
func main() {
p:= 34
q:= 20
// ‘=='(Equal To)
result1:= p == q
fmt.Println(result1)
// ‘!='(Not Equal To)
result2:= p != q
fmt.Println(result2)
// ‘<‘(less than)="" result3:="p">< q="" fmt.println(result3)="" ‘="">'(Greater Than)
result4:= p > q
fmt.Println(result4)
// ‘>='(Greater Than Equal To)
result5:= p >= q
fmt.Println(result5)
// ‘<='(less than="" equal="" to)="" result6:="p"><= q="" fmt.println(result6)="" }="">
Sonuç:
false
true
false
true
true
false
Mantıksal operatörler
İki veya daha fazla koşulu/kısıtlamayı birleştirmek veya dikkate alınan ilk koşulun değerlendirmesini tamamlamak için kullanılırlar.
- VE: '&&' operatörü, ele alınan her iki koşul da sağlandığında doğru değerini döndürür. Aksi takdirde false döner. Örneğin, a && b, hem a hem de b doğru olduğunda (yani sıfırdan farklı olduğunda) doğru değerini döndürür.
- VEYA: Operatör '||' İncelenen koşullardan biri (veya her ikisi) karşılandığında doğru döner. Aksi takdirde false döner. Örneğin: a || b, a veya b'den biri doğruysa (yani sıfırdan farklıysa) doğruyu döndürür. Elbette hem a hem de b doğru olduğunda true değerini döndürür.
- Mantıksal HAYIR: '!' Operatör İncelenen koşul sağlanmadığında true değerini döndürür. Aksi takdirde false döner. Örneğin: !a, a yanlışsa, yani a = 0 olduğunda true değerini döndürür.
Örneğin:
// Minh họa chương trình Go dùng toán tử logic
package main
import "fmt"
func main() {
var p int = 23
var q int = 60
if(p!=q && p<=q){ fmt.println("true")="" }="" if(p!="q" ||=""><=q){ fmt.println("true")="" }="" if(!(p="=q)){" fmt.println("true")="" }="" }="">
Sonuç:
True
True
True
Bitsel operatörler
Go dilinde, bit seviyesinde işlem yapan veya bit-bit işlemleri gerçekleştirmek için kullanılan 6 adet bitsel operatör bulunmaktadır. Aşağıda bitsel operatörler verilmiştir:
- & (bit düzeyinde VE): İşlenen olarak iki sayı alır ve iki sayının her biti üzerinde VE işlemini gerçekleştirir. AND işleminin sonucu yalnızca her iki bit de 1 ise 1 olur.
- | (bit düzeyinde VEYA): İki sayıyı işlenen olarak alır ve iki sayının her biti üzerinde VEYA işlemini gerçekleştirir. İki bitten herhangi biri 1 ise VEYA işleminin sonucu 1 olur.
- ^ (bit düzeyinde XOR): İşlenen olarak iki sayı alır ve iki sayının her biti üzerinde XOR gerçekleştirir. İki bit farklıysa XOR'un sonucu 1'dir.
- < (sola kaydır): iki sayı alır, ilk işlenenin bitlerini sola kaydırır, ikinci işlenen kaydırılacak konum sayısını belirler
- >> (sağa kaydırma): İki sayı al, ilk işlenenin bitlerini sağa kaydır, ikinci işlenen kaydırılacak konum sayısını belirler.
- &^ (VE DEĞİL): Bu açık bir bitsel operatördür.
Örneğin:
// Minh họa chương trình Go dùng toán tử bitwise
package main
import "fmt"
func main() {
p:= 34
q:= 20
// & (bitwise AND)
result1:= p & q
fmt.Printf("Result of p & q = %d", result1)
// | (bitwise OR)
result2:= p | q
fmt.Printf("\nResult of p | q = %d", result2)
// ^ (bitwise XOR)
result3:= p ^ q
fmt.Printf("\nResult of p ^ q = %d", result3)
// < (left="" shift)="" result4:="p">< 1="" fmt.printf("\nresult="" of="" p="">< 1="%d" ,"="" result4)="">> (right shift)
result5:= p >> 1
fmt.Printf("\nResult of p >> 1 = %d", result5)
// &^ (AND NOT)
result6:= p &^ q
fmt.Printf("\nResult of p &^ q = %d", result6)
}
Sonuç:
Kết quả của p & q = 0
Kết quả của p | q = 54
Kết quả của p ^ q = 54
Kết quả của p < 1="68" kết="" quả="" của="" p="">> 1 = 17
Kết quả của p &^ q = 34
Atama Operatörü
Atama operatörü bir değişkene değer atamak için kullanılır. Atama operatörünün sol işleneni bir değişkendir ve atama operatörünün sağ işleneni bir değerdir. Sağdaki değerin soldaki değişkenle aynı veri tipine sahip olması gerekir, aksi takdirde derleyici hata döndürür. Aşağıda farklı tipteki atama operatörleri gösterilmektedir:
- “="(Basit atama): Bu en basit atama operatörüdür. Bu operatör sağdaki değeri soldaki değişkene atamak için kullanılır.
- “+=”(Ek atama): Bu operatör, '+' ve '=' operatörlerinin birleşimidir. Bu operatör önce sol değişkenin geçerli değerini sağ değişkenin değerine ekler ve ardından sonucu sol değişkene atar.
- “-=”(Eksi Atama): Bu operatör, '-' ve '=' operatörlerinin birleşimidir. Bu operatör önce sol değişkenin geçerli değerini sağ değişkenin değerinden çıkarır ve ardından sonucu sol değişkene atar.
- “*="(Çarpma Atama): Bu operatör '*' ve '=' operatörlerinin birleşimidir. Bu operatör önce soldaki değişkenin geçerli değerini sağdaki değerle çarpar ve ardından sonucu soldaki değişkene atar.
- “/=”(Bölme ataması): Bu operatör '/' ve '=' operatörlerinin birleşimidir. Bu operatör önce soldaki değişkenin geçerli değerini sağdaki değere böler ve ardından sonucu soldaki değişkene atar.
- “%=”(Kalan atama): Bu operatör, '%' ve '=' operatörlerinin birleşimidir. Bu operatör önce sol değişkenin geçerli değerinden kalanını sağdaki değere göre alır ve ardından sonucu sol değişkene atar.
- “&=”(Bitsel VE): Bu operatör, '&' ve '=' operatörlerinin birleşimidir. Bu operatör önce sol değişkenin geçerli değerini sağdaki değere "bit düzeyinde VE" uygular ve ardından sonucu sol değişkene atar.
- “^=”(Bit düzeyinde özel VEYA): Bu operatör, '^' ve '=' operatörlerinin birleşimidir. Bu operatör önce sol değişkenin geçerli değerini sağ değişkenin değeriyle “Bitwise Exclusive OR” işlemine tabi tutar ve ardından sonucu sol değişkene atar.
- "|="(Bit düzeyinde kapsayıcı VEYA): Bu operatör, '|' operatörler ve '='. Bu operatör önce sol değişkenin geçerli değerini sağ değişkenin değeriyle “Bitsel Dahil VEYA” işlemine tabi tutar ve ardından sonucu sol değişkene atar.
- “<=: Bu operatör, < ' ve '="' operatörlerinin birleşimidir ." Bu operatör, önce soldaki değişkenin geçerli değerini sağdaki değer kadar “kaydırır” ve ardından sonucu sağdaki değişkene atar.
- “>>=”: Bu operatör '>>' ve '=' operatörlerinin birleşimidir. Bu operatör önce sol değişkenin geçerli değerini sağdaki değerle “Sağa Kaydırma” işlemine tabi tutar ve ardından sonucu sol değişkene atar.
Örneğin:
// Minh họa chương trình Go dùng toán tử gán
package main
import "fmt"
func main() {
var p int = 45
var q int = 50
// “=”(Simple Assignment)
p = q
fmt.Println(p)
// “+=”(Add Assignment)
p += q
fmt.Println(p)
//“-=”(Subtract Assignment)
p-=q
fmt.Println(p)
// “*=”(Multiply Assignment)
p*= q
fmt.Println(p)
// “/=”(Division Assignment)
p /= q
fmt.Println(p)
// “%=”(Modulus Assignment)
p %= q
fmt.Println(p)
}
Sonuç:
50
100
50
2500
50
0
Diğer operatörler
- &: Bu operatör bir değişkenin adresini döndürür.
- *: Bu operatör bir değişkene işaretçi sağlar.
- <-: Bu operatörün adı receive'dır. Bir değeri almak için kullanılır
// Minh họa chương trình sử dụng toán tử khác
package main
import "fmt"
func main() {
a := 4
// Dùng địa chỉ của toán tử (&) toán tử trỏ gián tiếp (*)
b := &a
fmt.Println(*b)
*b = 7
fmt.Println(a)
}
Sonuç:
4
7