Вебинар: Go-Go-Gadg...Error? Смотрим, как ошибаются Go разработчики! - 26.08
Анализатор обнаружил код, в котором рядом находятся две конструкции if с одинаковыми условиями. Это является потенциальной ошибкой или избыточным кодом.
func Logging(s1 *string, s2 *string) {
if s1 != nil {
fmt.Println(*s1)
}
if s1 != nil {
fmt.Println(*s2)
}
}
Этот код содержит ошибку во втором условии. В нём повторно проверяется переменная s1, а необходимо проверить переменную s2.
Исправленный вариант:
func Logging(s1 *string, s2 *string) {
if s1 != nil {
fmt.Println(*s1)
}
if s2 != nil {
fmt.Println(*s2)
}
}
Диагностическое правило не всегда указывает на ошибку. Код может быть избыточен:
func Logging2(toFile bool, s1 string, s2 string) {
if toFile {
fmt.Println(s1)
}
if toFile {
fmt.Println(s2)
}
}
Этот код корректен, но он немного неэффективен, так как два раза приходится проверять значение одной и той же логической переменной. Его можно переписать:
func Logging2(toFile bool, s1 string, s2 string) {
if toFile {
fmt.Println(s1)
fmt.Println(s2)
}
}
Взгляните на примеры ошибок, обнаруженных с помощью диагностики V8017. |
Была ли полезна эта страница документации?
Мы ответим вам на:
Если вы так и не получили ответ, пожалуйста, проверьте, отфильтровано ли письмо в одну из следующих стандартных папок: