В C/С++ (и на многих языках этого семейства) общая идиома для объявления и инициализации переменной в зависимости от условия использует тернарный условный оператор:
int index = val > 0 ? val : -val
Go не имеет условного оператора. Каков самый идиоматический способ реализации того же кода, что и выше? Я пришел к следующему решению, но он выглядит довольно многословным
var index int
if val > 0 {
index = val
} else {
index = -val
}
Есть ли что-то лучше?