Das idiomatische Go-Äquivalent des ternären Operators von C
Ein ternärer Operator ist ein Operator mit drei Operanden, der Programmierern hilft, Entscheidungen zu treffen. Es ist eine verkürzte Version der Bedingung if-else
.
Der ternäre Operator wird so genannt, weil er drei Operatoren zur Vervollständigung erfordert. Es gibt einen ternären Operator (?:
), der in den meisten Programmiersprachen wie eine if-else
-Kette ausgewertet wird, aber in Go gibt es keinen ternären Operator.
Implementieren des ternären Operators von C in Golang
Ein Beispiel für einen ternären
Operator in der Programmiersprache C ist unten angegeben, und dann werden wir ihn in Golang umwandeln.
#include <stdio.h>
int main() {
int x = 5, y = 10, result;
result = (x > y) ? x : y;
printf("%d", result);
}
Ausgabe:
10
Der ternäre
Operator ist also in Go nicht verfügbar. Sie können stattdessen einen if-else
-Block verwenden, wie in den folgenden Beispielen unten.
Beispiel 1:
package main
import (
"fmt"
)
func main() {
var x, y, result int
x = 5
y = 10
if x > y {
result = x
} else {
result = y
}
fmt.Println(result)
}
Ausgabe:
10
Beispiel 2:
v = f > 0 ? 1 : 0 // if f > 0 then v is 1 else v is 0
Die Lösung ist ein if-else
-Block. Es stellt den gleichen Code viel besser lesbar dar.
package main
import (
"fmt"
)
func main() {
var f, result int
f = 5
if f > 0 {
result = 1
} else {
result = 0
}
fmt.Println(result)
}
Ausgabe:
1