Как вы отмечаете код как устаревший в Go?

В Go, как вы отмечаете код как устаревший, чтобы пользователи получали предупреждение при его использовании?

Ответ 1

Вы можете создать пакет с именем old/yourpackage и посоветовать использовать его, если кто-то полагается на устаревшие функции/интерфейсы, а затем создать обновленный пакет yourpackage без старых вещей.

Нет способа вставить ни предупреждения, ни методы маркировки как устаревшие другим способом, чем в документации, согласно Godoc: документирование поста в блоге с кодом Go, который гласит:

Чтобы указать, что идентификатор не следует использовать, добавьте абзац к его комментарию к документу, который начинается с "Устаревший:", после чего следует некоторая информация об устаревании. В стандартной библиотеке есть несколько примеров.

Ответ 2

Godoc: документирование кода Go говорит о том, что код помечен как устаревший:

Чтобы указать, что идентификатор не следует использовать, добавьте абзац к его комментарию к документу, который начинается с "Устаревший:", после чего следует некоторая информация об устаревании.

Существует проблема с golint для сообщения об использовании устаревших идентификаторов, а также с проблемой godoc для зачеркивания или сокрытия устаревших идентификаторов.

Инструмент staticcheck сообщает об использовании устаревших идентификаторов (см. SA1019).

Ответ 4

В компиляторе Go нет поддержки (ни в 5g/6g/8g, ни в gccgo).

Насколько я знаю, в настоящее время для этого не существует средства проверки кода.

Единственный способ - вывести предупреждение об устаревании в документацию или просто удалить код.

Ответ 5

Вы также можете просто распечатать строку в stdout/stderr, говоря: "Этот метод устарел!" каждый раз, когда вызывается устаревший метод. Вы также можете указать подсказку о том, как пользователь должен исправить это.