L'équivalent go idiomatique de l'opérateur ternaire de C

Jay Singh 12 octobre 2023
L'équivalent go idiomatique de l'opérateur ternaire de C

Un opérateur ternaire est un opérateur à trois opérandes qui aide les programmeurs à prendre des décisions. C’est une version condensée du conditionnel if-else.

L’opérateur ternaire est nommé car il nécessite trois opérateurs pour se terminer. Il existe un opérateur ternaire (?:) qui s’évalue comme une chaîne if-else dans la plupart des langages de programmation, mais il n’y a pas d’opérateur ternaire en Go.

Implémentation de l’opérateur ternaire de C dans Golang

Un exemple d’opérateur ternaire dans le langage de programmation C est donné ci-dessous, puis nous le convertirons en Golang.

#include <stdio.h>

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

Production:

10

L’opérateur ternaire n’est donc pas disponible en Go. Vous pouvez utiliser un bloc if-else à la place, comme dans les exemples suivants ci-dessous.

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

Production:

10

Exemple 2 :

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

La solution est un bloc if-else. Il représente le même code d’une manière beaucoup plus lisible.

package main

import (
	"fmt"
)

func main() {

	var f, result int
	f = 5

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

	fmt.Println(result)
}

Production:

1