tgoop.com/go_interview_lib/576
Last Update:
💬 В Go 1.21 появились аналоги sync.Once. Какие именно и для чего они предназначены?
🔸 OnceFunc
: функция, которая оборачивает другую функцию так, что та выполнится только один раз. Например, если обёртку wrapper()
вызвать несколько раз, внутренняя функция запустится только при первом вызове. Удобно для случаев, когда необходимо гарантировать, что операция выполняется строго один раз, но хочется иметь удобный многократный интерфейс вызова.
🔸 OnceValue[T]
: используется для функций, возвращающих одно значение. Это полезно для кеширования результата тяжёлой операции, например загрузки конфигурации, чтобы каждый вызов возвращал тот же результат, экономя ресурсы.
🔸 OnceValues[T, K]
: это расширение, позволяющее возвращать несколько значений, включая ошибки, что упрощает обработку потенциальных ошибок во время первого вызова функции. Все последующие вызовы вернут закешированный результат (вместе с ошибкой, если она была).
BY Библиотека Go для собеса | вопросы с собеседований
Share with your friend now:
tgoop.com/go_interview_lib/576