Go

Пакет context

context.Context, скасування, timeout, deadline, значення, WithCancel, WithTimeout

20 питань зі співбесід·
Mid-Level
1

Яка основна роль пакета context у Go?

Відповідь

Пакет context дозволяє послідовно керувати timeout, скасуваннями та deadline по всьому ланцюгу викликів. Це запобігає появі зомбі-goroutine, які продовжують працювати, коли їхній результат уже не потрібен. Завжди передавайте context першим параметром і регулярно перевіряйте Done() у тривалих операціях, щоб дотримуватися скасувань.

2

Яка функція створює порожній context без deadline і скасування?

Відповідь

context.Background() повертає порожній context, який не можна скасувати, без deadline і значень. Він слугує відправною точкою для створення похідних context і зазвичай використовується в main, ініціалізації або тестах. Ніколи не використовуйте nil як context, оскільки це спричиняє panic під час доступу до методів.

3

Яка різниця між context.Background() і context.TODO()?

Відповідь

context.TODO() слугує заповнювачем, коли відповідний context ще не зрозумілий або недоступний під час розробки. context.Background() використовується для реальних точок входу, як-от main чи HTTP-обробники. Обидва функціонально ідентичні, але TODO() документує тимчасовий намір, який слід замінити пізніше.

4

Як створити context, який можна скасувати вручну?

5

Який channel дозволяє виявити скасування context?

+17 питань зі співбесід

Опануй Go для наступної співбесіди

Отримай доступ до всіх питань, flashcards, технічних тестів, вправ code review та симуляторів співбесід.

Почни безкоштовно