5 Operatoren in der Programmiersprache Go

In der Programmiersprache Go gibt es eine Vielzahl von Operatoren, die in verschiedenen Kategorien zusammengefasst werden können. Diese Kategorien umfassen arithmetische Operatoren, Zuweisungsoperatoren, Vergleichsoperatoren, logische Operatoren, bitweise Operatoren und spezielle Operatoren. Jeder dieser Operatoren spielt eine entscheidende Rolle bei der Manipulation von Daten und der Implementierung von Algorithmen.

5.1 Arithmetische Operatoren

Arithmetische Operatoren werden für mathematische Operationen verwendet:

Beispiel:

a := 10
b := 3
fmt.Println(a + b) // Ausgabe: 13
fmt.Println(a - b) // Ausgabe: 7
fmt.Println(a * b) // Ausgabe: 30
fmt.Println(a / b) // Ausgabe: 3
fmt.Println(a % b) // Ausgabe: 1

5.2 Zuweisungsoperatoren

Zuweisungsoperatoren weisen Variablen Werte zu und können gleichzeitig Operationen durchführen:

Beispiel:

a := 5
a += 2  // a = a + 2, Ausgabe: 7
a -= 3  // a = a - 3, Ausgabe: 4
a *= 2  // a = a * 2, Ausgabe: 8
a /= 4  // a = a / 4, Ausgabe: 2
a %= 2  // a = a % 2, Ausgabe: 0
fmt.Println(a)

5.3 Vergleichsoperatoren

Vergleichsoperatoren werden verwendet, um zwei Werte zu vergleichen:

Beispiel:

a := 5
b := 3
fmt.Println(a == b)  // Ausgabe: false
fmt.Println(a != b)  // Ausgabe: true
fmt.Println(a < b)   // Ausgabe: false
fmt.Println(a <= b)  // Ausgabe: false
fmt.Println(a > b)   // Ausgabe: true
fmt.Println(a >= b)  // Ausgabe: true

5.4 Logische Operatoren

Logische Operatoren werden verwendet, um boolesche Werte zu kombinieren:

Beispiel:

a := true
b := false
fmt.Println(a && b) // Ausgabe: false
fmt.Println(a || b) // Ausgabe: true
fmt.Println(!a)     // Ausgabe: false

5.5 Bitweise Operatoren

Bitweise Operatoren führen Operationen auf der Bit-Ebene durch:

Beispiel:

a := 5  // 0101 in Binär
b := 3  // 0011 in Binär
fmt.Println(a & b)  // Ausgabe: 1  (0001 in Binär)
fmt.Println(a | b)  // Ausgabe: 7  (0111 in Binär)
fmt.Println(a ^ b)  // Ausgabe: 6  (0110 in Binär)
fmt.Println(a &^ b) // Ausgabe: 4  (0100 in Binär)
fmt.Println(a << 1) // Ausgabe: 10 (1010 in Binär)
fmt.Println(a >> 1) // Ausgabe: 2  (0010 in Binär)

5.6 Sonstige Operatoren

Es gibt auch spezielle Operatoren für bestimmte Operationen:

Beispiel:

// Adress- und Dereferenzierungsoperatoren
var a int = 10
var p *int = &a
fmt.Println(p)  // Ausgabe: Adresse von a
fmt.Println(*p) // Ausgabe: 10

// Punktoperator bei Structs
type Person struct {
    Name string
    Age  int
}
p1 := Person{Name: "Alice", Age: 30}
fmt.Println(p1.Name) // Ausgabe: Alice
fmt.Println(p1.Age)  // Ausgabe: 30

// Indexoperator bei Arrays, Slices und Maps
arr := []int{1, 2, 3}
fmt.Println(arr[0]) // Ausgabe: 1

m := map[string]int{"one": 1, "two": 2}
fmt.Println(m["one"]) // Ausgabe: 1