C 言語の三項演算子に相当する慣用句

Jay Singh 2023年10月12日
C 言語の三項演算子に相当する慣用句

三項演算子は、プログラマーが意思決定を行うのを支援する 3 オペランドの演算子です。これは、if-else 条件付きの要約バージョンです。

三項演算子は、完了するのに 3つの演算子が必要なために名前が付けられています。ほとんどのプログラミング言語には if-else チェーンのように評価される三項演算子(?:)がありますが、Go には三項演算子はありません。

Golang での C の三項演算子の実装

C プログラミング言語の三項演算子の例を以下に示します。次に、それを Golang に変換します。

#include <stdio.h>

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

出力:

10

したがって、三項演算子は Go では使用できません。以下の例のように、代わりに if-else ブロックを使用できます。

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

出力:

10

例 2:

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

解決策は if-else ブロックです。同じコードをはるかに読みやすい方法で示しています。

package main

import (
	"fmt"
)

func main() {

	var f, result int
	f = 5

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

	fmt.Println(result)
}

出力:

1