El equivalente idiomático de Go del operador ternario de C

Jay Singh 12 octubre 2023
El equivalente idiomático de Go del operador ternario de C

Un operador ternario es un operador de tres operandos que ayuda a los programadores a tomar decisiones. Es una versión condensada del condicional if-else.

El operador ternario se nombra porque requiere tres operadores para completarse. Hay un operador ternario (?:) que se evalúa como una cadena if-else en la mayoría de los lenguajes de programación, pero no hay un operador ternario en Go.

Implementando el Operador Ternario de C en Golang

A continuación se muestra un ejemplo de un operador ternario en el lenguaje de programación C, y luego lo convertiremos en Golang.

#include <stdio.h>

int main() {
  int x = 5, y = 10, result;
  result = (x > y) ? x : y;
  printf("%d", result);
}

Producción :

10

Entonces el operador ternario no está disponible en Go. En su lugar, puede usar un bloque if-else, como los siguientes ejemplos a continuación.

Ejemplo 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)
}

Producción :

10

Ejemplo 2:

v = f > 0 ? 1 : 0 // if f > 0 then v is 1 else v is 0

La solución es un bloque if-else. Representa el mismo código de una manera mucho más legible.

package main

import (
	"fmt"
)

func main() {

	var f, result int
	f = 5

	if f > 0 {
		result = 1
	} else {
		result = 0
	}

	fmt.Println(result)
}

Producción :

1