Код должен сокращать вложенность, где это возможно, сначала обрабатывая случаи ошибок/особые условия и возвращаясь раньше или продолжая цикл. Уменьшите количество кода, вложенного в несколько уровней.
Менее удачный вариант:
for _, v := range data {
if v.F1 == 1 {
v = process(v)
if err := v.Call(); err == nil {
v.Send()
} else {
return err
}
} else {
log.Printf("Invalid v: %v", v)
}
}
Более удачный вариант:
for _, v := range data {
if v.F1 != 1 {
log.Printf("Invalid v: %v", v)
continue
}
v = process(v)
if err := v.Call(); err != nil {
return err
}
v.Send()
}
Ненужный else
Если переменная установлена в обеих ветвях if, ее можно заменить одним if.
Менее удачный вариант:
var a int
if b {
a = 100
} else {
a = 10
}
Более удачный вариант:
a := 10
if b {
a = 100
}
Читайте также:
- Go style guides: группировка функций и упорядочение
- Go style guides: избегайте встраивания типов в общедоступные структуры
- Go style guides: последовательность, группировка объявлений
Комментариев нет:
Отправить комментарий