Получи случайную криптовалюту за регистрацию!

Golang вопросы собеседований

Логотип телеграм канала @golang_interview — Golang вопросы собеседований G
Логотип телеграм канала @golang_interview — Golang вопросы собеседований
Адрес канала: @golang_interview
Категории: Технологии
Язык: Русский
Количество подписчиков: 7.19K
Описание канала:

@notxxx1 - админ
@Golang_google - Golang для разработчиков
@itchannels_telegram - 🔥лучшие из ит
@golangl - golang chat
@golangtests - golang tests
@golang_jobsgo - go chat jobs
@ai_machinelearning_big_data - AI
@data_analysis_ml - анализ данных

Рейтинги и Отзывы

2.50

2 отзыва

Оценить канал golang_interview и оставить отзыв — могут только зарегестрированные пользователи. Все отзывы проходят модерацию.

5 звезд

0

4 звезд

1

3 звезд

0

2 звезд

0

1 звезд

1


Последние сообщения 2

2022-07-09 16:26:22
"Как преобразовать интерфейс к другому типу?"

Ответ
Интерфейс можно преобразовать в базовый тип значения (скастить). Для этого используется синтаксис, возвращающий две переменные, одна из которых булевая.

В случае, если не удалось скастить интерфейс, булевая переменная будет ложной, а переменная базового типа, к которому приводим интерфейс будет равна дефолтному значению этого типа.

@golang_interview
955 views13:26
Открыть/Комментировать
2022-07-09 16:11:15
Как найти максимальное число в массиве на Golang?

Ответ

Чтобы найти максимальное число в массиве, то можно воспользоваться несколькими путями в Golang:

Отсортировать массив и затем взять последний элемент массива
Использовать цикл: берем первый элемент как начальный и затем в цикле сравниваем и если больше, то записываем в максимально значение


@golang_interview
848 views13:11
Открыть/Комментировать
2022-07-09 14:28:12 В чем отличие протоколов TCP и UDP? В каком случае UDP предпочтительнее?

Ответ
TCP – транспортный протокол передачи данных в сетях TCP/IP, предварительно устанавливающий соединение с сетью.

UDP – транспортный протокол, передающий сообщения-датаграммы без необходимости установки соединения в IP-сети.

Разница между протоколами TCP и UDP – в так называемой "гарантии доставки". TCP требует отклика от клиента, которому доставлен пакет данных, подтверждения доставки, и для этого ему необходимо установленное заранее соединение. Также протокол TCP считается надежным, тогда как UDP получил даже именование “протокол ненадежных датаграмм. TCP исключает потери данных, дублирование и перемешивание пакетов, задержки. UDP все это допускает, и соединение для работы ему не требуется. Процессы, которым данные передаются по UDP, должны обходиться полученным, даже и с потерями. TCP контролирует загруженность соединения, UDP не контролирует ничего, кроме целостности полученных датаграмм.

С другой стороны, благодаря такой не избирательности и бесконтрольности, UDP доставляет пакеты данных (датаграммы) гораздо быстрее, потому для приложений, которые рассчитаны на широкую пропускную способность и быстрый обмен, UDP можно считать оптимальным протоколом. К таковым относятся сетевые и браузерные игры, а также программы просмотра потокового видео и приложения для видеосвязи (или голосовой): от потери пакета, полной или частичной, ничего не меняется, повторять запрос не обязательно, зато загрузка происходит намного быстрее. Протокол TCP, как более надежный, с успехом применяется даже в почтовых программах, позволяя контролировать не только трафик, но и длину сообщения и скорость обмена трафиком.

@golang_interview
909 viewsedited  11:28
Открыть/Комментировать
2022-07-09 14:25:22 "Как работает базовая функция append для go?"

Ответ

Функция принимает на вход слайс и переменное количество элементов для добавления в слайс. Append расширяет слайс за пределы его len, возвращая при этом новый слайс.

Если количество элементов, которые мы добавляем в слайс, не будет превышать cap, вернется новый слайс, который ссылается на тот же базовый массив, что и предыдущий слайс. Если количество добавляемых элементов превысит cap, то вернется новый слайс, базовым для которого будет новый массив.

func append(slice []Type, elems ...Type) []Type
783 views11:25
Открыть/Комментировать
2022-07-09 14:25:12 Array и slice в Golang

Самый популярный вопрос на собеседовании на любую позицию go инженера - "Что такое слайс и чем он отличается от массива?".

Ответ
type slice struct {
array unsafe.Pointer
len int
cap int
}
744 views11:25
Открыть/Комментировать
2022-07-09 14:25:01 "Что такое iota?"

Ответ


iota - идентификатор, который позволяет создавать последовательные не типизированные целочисленные константы. Значением iota является индекс ConstSpec. Не смотря на то, что первым индексом является 0, значение первой константы можно задать отличным от 0, что в свою очередь повлияет на значения последующих констант.
716 views11:25
Открыть/Комментировать
2022-07-09 14:24:49 Const в Golang
"Что такое константы и можно ли их изменять?"

Ответ

Константы - это неизменяемые переменные, изменить константу нельзя.
701 views11:24
Открыть/Комментировать
2022-07-09 14:24:35 "Какой результат получим если разделить int на 0 и float на 0?"

Ответ

Это вопрос с подвохом. Деление int на 0 в go невозможно и вызовет ошибку компилятора. Тогда как деление float на 0 дает в своем результате бесконечность.
680 views11:24
Открыть/Комментировать
2022-07-09 14:24:26 "Какие предельные значения int32 и int64?"

Ответ

В предыдущем вопросе мы отвечали сколько места в памяти занимают эти типы. Таким образом с помощью 4 или 8 байт можно закодировать разные по диапазону значения.

Для int64 это диапазон от –9 223 372 036 854 775 808 до 9 223 372 036 854 775 807, для int32 от –2 147 483 648 до 2 147 483 647.
663 views11:24
Открыть/Комментировать
2022-07-09 14:24:20 "Сколько в памяти занимают реализации int32 и int64?"

Ответ

Из самого названия типа следует, что int32 занимает 4 байта (32/8), int64 занимает 8 байтов (64/8).
635 views11:24
Открыть/Комментировать