среда, 16 декабря 2020 г.

Go style guides: уменьшайте вложенность

Код должен сокращать вложенность, где это возможно, сначала обрабатывая случаи ошибок/особые условия и возвращаясь раньше или продолжая цикл. Уменьшите количество кода, вложенного в несколько уровней.

Менее удачный вариант:

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
}


Читайте также:


Комментариев нет:

Отправить комментарий