Golang | Тесты
2.77K subscribers
23 photos
305 links
Cайт easyoffer.ru
Реклама @easyoffer_adv
ВП @easyoffer_vp

Вопросы собесов t.me/+ajHN0OKU1okyZDky
Задачи t.me/+MURwpbl6Nq9kYzJi
Вакансии t.me/+mX_RBWjiMTExODUy
Download Telegram
🤔 Какое ключевое слово используется для объявления глобальной переменной в Go?
Anonymous Quiz
13%
global
75%
var
11%
const
2%
static
🤔 Что такое WaitGroup?

`WaitGroup` в Go используется для синхронизации горутин, чтобы гарантировать, что основная горутина ждёт завершения всех дочерних горутин. Метод `Add()` увеличивает счетчик горутин, метод `Done()` уменьшает его, а метод `Wait()` блокирует выполнение до тех пор, пока счетчик не станет равен нулю. `WaitGroup` удобен для управления потоками выполнения, особенно когда несколько горутин выполняют параллельные задачи. Это упрощает координацию завершения работы всех горутин в программе.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Как ООП в Go реализовано?

Go не поддерживает классическое ООП с наследованием классов, но предлагает альтернативу через композицию и интерфейсы. В Go объекты могут включать другие объекты как поля (встраивание структур), что позволяет создавать сложные иерархии без явного наследования. Интерфейсы в Go определяют набор методов, которые должен реализовать тип, но не требуют явной привязки. Это делает Go более гибким и помогает избежать проблем, связанных с жёстким наследованием.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Какой механизм используется в Go для управления конкурентностью и синхронизацией между горутинами?
Anonymous Quiz
32%
Мьютексы
63%
Каналы
3%
Семафоры
2%
Мониторы
🤔 Зачем нужна конструкция defer?

`defer` в Go откладывает выполнение функции или выражения до завершения текущей функции. Это особенно полезно для гарантированного освобождения ресурсов, таких как закрытие файлов, сокетов или освобождение блокировок, даже если функция завершится с ошибкой. `defer` улучшает читаемость кода, позволяя явно указать операции очистки рядом с инициализацией ресурсов. Вложенные `defer` выполняются в порядке стека (последний добавленный — первый выполненный).

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Какой тип данных используется в Go для работы с множеством байтов?
Anonymous Quiz
6%
string
84%
[]byte
3%
array
7%
bytes
🤔 Какие недостатки есть у Go?

Одним из недостатков Go является отсутствие дженериков до версии 1.18, что делало код менее гибким и приводило к повторению однотипных функций для разных типов данных. Go также не поддерживает наследование классов и сложные конструкции ООП, что может ограничивать архитектуру приложений для разработчиков, привыкших к традиционным ООП языкам. Ещё один недостаток — слабая стандартная библиотека для работы с шаблонами и сложными функциональными абстракциями. Однако простота Go делает его эффективным для системного и сетевого программирования.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Как в Go создать небуферизованный канал для целых чисел?
Anonymous Quiz
10%
make(chan int, 1)
81%
make(chan int)
4%
new(chan int)
5%
make(unbuf chan int)
🤔 Как в Go определить метод, который не изменяет состояние структуры?
Anonymous Quiz
20%
func (t *Type) Method() {}
73%
func (t Type) Method() {}
6%
func Type.Method() {}
1%
func t.Type.Method() {}
🤔 Что такое context в Go?

`context` в Go используется для управления временем выполнения горутин, передачи метаданных и отмены операций. Контексты позволяют устанавливать тайм-ауты, дедлайны и передавать отмену сигналов между горутинами, что помогает координировать завершение связанных операций. `context` передаётся как аргумент функций, и это позволяет управлять зависимыми процессами более эффективно. Это особенно полезно в сетевом программировании и запросах, которые могут быть отменены по истечению времени.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Какое значение будет возвращено функцией, если переданный указатель на структуру равен nil?
Anonymous Quiz
37%
Паника
43%
Нулевое значение типа структуры
11%
Ошибка компиляции
9%
Ничего не вернется
🤔 В чем разница TCP и UDP?

TCP (Transmission Control Protocol) — это протокол, который обеспечивает надёжную передачу данных, гарантируя, что все пакеты будут доставлены в правильном порядке и без потерь. TCP устанавливает соединение между клиентом и сервером перед передачей данных, проверяет целостность пакетов и управляет повторной передачей потерянных данных. UDP (User Datagram Protocol) не гарантирует доставку пакетов, не обеспечивает контроль за порядком их получения и не требует установления соединения, что делает его более быстрым, но менее надёжным. UDP предпочтителен для приложений, где скорость важнее надёжности, например, для видеостриминга или онлайн-игр.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Как в Go объявить метод для структуры, который не изменяет ее состояние?
Anonymous Quiz
14%
func (t *Type) Method() {}
79%
func (t Type) Method() {}
4%
func Type.Method() {}
2%
func t.Type.Method() {}
🤔 Как в Go объявить функцию с именем main, которая является точкой входа в программу?
Anonymous Quiz
0%
func start() {}
96%
func main() {}
0%
func entry() {}
3%
func main() int {}
🤔 Что такое mutex, какие они бывают и как их использовать?

Mutex (mutual exclusion) — это механизм синхронизации, который предотвращает одновременный доступ нескольких потоков к общим ресурсам, таким как данные или память. Основная задача мьютекса — блокировка доступа к ресурсу до тех пор, пока один поток не завершит работу с ним, после чего ресурс становится доступным для других потоков. Мьютексы бывают обычными (нельзя повторно захватывать одним и тем же потоком) и рекурсивными (позволяют одному потоку захватывать мьютекс несколько раз без блокировки). Мьютексы используются для решения проблем многопоточности, таких как гонки данных, и обеспечивают согласованность данных при параллельном доступе.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM