Das idiomatische Go-Äquivalent des ternären Operators von C

Jay Singh 12 Oktober 2023
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