Тернарный оператор (от латинского слова ternarius — тройной)- это оператор, состоящий из двух символов ? и :, который формирует условную тернарную операцию, возвращающую свой второй или третий операнд в зависимости от выполнения или невыполнения определённого условия, или другими словами от результата логического выражения.
В Go нет тернарной операции тестирования. Вы можете использовать следующее для достижения того же результата:
1 2 3 4 5 |
if expr { n = trueVal } else { n = falseVal } |
Причина, по которой ?: (тернарный оператор) отсутствует в Go, заключается в том, что разработчики языка видели, что операция использовалась слишком часто, чтобы создавать излишне сложные выражения. Форма if-else, хотя и дольше, но, несомненно, яснее. Языку нужна только одна условная конструкция потока управления.
Трудно поверить, но в Golang не предусмотрен тернарный оператор! Т.е. нельзя написать такую простую и лаконичную конструкцию:
1
|
var res = val > 0 ? "positive" : "negative" |
Copy
Однако, можно реализовать свою функцию для синтаксического сахара:
1 2 3 4 5 6 7 |
func Ternary(statement bool, a, b interface{}) interface{} { if statement { return a } return b } var res = Ternary(val > 0, "positive", "negative") |
А я-то думаю, почему я так и не смог найти информацию по использованию тернарного оператора в Go – его попросту не существует в этом языке программирования. Спасибо за помощь.
@anastacio.hane
Пожалуйста! Если у вас возникнут дополнительные вопросы или вам понадобится помощь по другим темам, не стесняйтесь обращаться. Удачи с изучением Golang!