Если вы объявляете строки формата для функций в стиле Printf вне строкового литерала, сделайте их константными значениями.
Это помогает провести статический анализ строки формата.
Менее удачный вариант:
msg := "unexpected values %v, %v\n"
fmt.Printf(msg, 1, 2)
Более удачный вариант:
const msg = "unexpected values %v, %v\n"
fmt.Printf(msg, 1, 2)
Именование функций в стиле Printf
Когда вы объявляете функцию в стиле Printf, убедитесь, что go vet может ее обнаружить и проверить строку формата.
Это означает, что по возможности следует использовать предопределенные имена функций в стиле Printf. go vet проверит их по умолчанию. Смотрите Printf для получения дополнительной информации.
Если использование предопределенных имен невозможно, завершите выбранное имя буквой f: Wrapf, а не Wrap. go vet можно попросить проверить конкретные имена в стиле Printf, но они должны оканчиваться на f.
$ go vet -printfuncs=wrapf,statusf
Читайте также:
- Go style guides: избегайте голых параметров
- Go style guides: nil - это допустимый срез
- Go style guides: необработанные строки, инициализация ссылок на структуры и карт
Комментариев нет:
Отправить комментарий