❓ Чем отличаются math.Floor и math.Ceil
Anonymous Poll
22%
Floor округляет вверх, Ceil — вниз
65%
Floor округляет вниз, Ceil — вверх
0%
Они делают одно и то же
15%
Ceil возвращает целое число, Floor — дробное
❓ Реализуйте безопасное деление двух чисел с обработкой NaN и бесконечностей
Go сам корректно обрабатывает все случаи деления, однако кастомная функция может быть полезна при ряде случаев:
1. Явная проверка ошибок
Когда важно отлавливать ошибочные значения (NaN, Inf) и, например, логировать их, возвращать 0, nil, или выдавать ошибку.
2. Инкапсуляция поведения
Если нужно, чтобы при делении на ноль возвращалось 0, а не Inf, или паника — можно задать своё поведение.
3. Работа в критичных системах
В некоторых проектах (финтех, медицинские расчёты, физика) нельзя полагаться на «плавающее» поведение — нужно жёстко контролировать результат и явно обрабатывать особые случаи.
4. Единый интерфейс
Например, может быть функция и для int, и для float64 — чтобы не повторять везде проверки на 0.
🐸Библиотека задач по Go
Go сам корректно обрабатывает все случаи деления, однако кастомная функция может быть полезна при ряде случаев:
1. Явная проверка ошибок
Когда важно отлавливать ошибочные значения (NaN, Inf) и, например, логировать их, возвращать 0, nil, или выдавать ошибку.
2. Инкапсуляция поведения
Если нужно, чтобы при делении на ноль возвращалось 0, а не Inf, или паника — можно задать своё поведение.
3. Работа в критичных системах
В некоторых проектах (финтех, медицинские расчёты, физика) нельзя полагаться на «плавающее» поведение — нужно жёстко контролировать результат и явно обрабатывать особые случаи.
4. Единый интерфейс
Например, может быть функция и для int, и для float64 — чтобы не повторять везде проверки на 0.
🐸Библиотека задач по Go
❤1🤔1
❓ Что такое method value
Anonymous Poll
31%
Тип данных, хранящий метод
7%
Общая функция без получателя
7%
Функция, не связанная с типом
58%
Метод, связанный с конкретным экземпляром типа
🤡35👎6
❓ В каком из случаев в Go целесообразно использовать кучу (heap) из стандартного пакета container/heap
Anonymous Poll
15%
Быстро удалить элементы с конца среза
54%
Организовать очередь с приоритетами
25%
Избежать утечек памяти
9%
Обрабатывать сигналы от операционной системы
❤3
❓ Что произойдёт, если вызвать heap.Pop на пустой куче в Go
Anonymous Poll
23%
Паника (panic)
34%
Вернётся nil без ошибки
41%
Возвращён нулевой элемент типа (zero value)
3%
Автоматически создан новый элемент
❓ Что произойдёт, если вызвать анонимную функцию без присваивания переменной
Anonymous Poll
4%
Функция не выполнится
10%
Будет ошибка компиляции
69%
Функция выполнится сразу
19%
Ничего не произойдёт
🤡8🕊1
❓ Какой синтаксис используется для определения анонимной функции
Anonymous Poll
3%
func имя() { ... }
4%
function() { ... }
94%
func() { ... }
1%
def() { ... }
❓ Как использовать анонимную функцию
Anonymous Poll
14%
Для однострочных выражений
57%
Внутри других функций
51%
Присвоить переменной и вызывать по необходимости
18%
Только как аргумент другой функции
🤡12👍1
❓Какой тип кучи создаётся при реализации Less(i, j int) bool как h[i] < h[j]
Anonymous Poll
11%
Максимальная куча
18%
Очередь с приоритетом
43%
Сортированная очередь
32%
Минимальная куча
👍3
❓ Для чего используют пустые структуры в map
Anonymous Poll
76%
Когда нужны только ключи
5%
Для хранения значений
10%
Пустые структуры нельзя использовать в map
11%
Для оптимизации чтения
❓ Когда сборщик мусора очищает слайсы
Anonymous Poll
82%
Когда на слайс нет ссылок
8%
Когда программа завершается
2%
Когда слайс пустой
15%
Сборщик мусора не очищает слайсы
👍3
❓ Как вам задачи этой недели
Anonymous Poll
6%
Каждую гуглил, чтобы решить
35%
Немного подумал и всё решилось
62%
Легкотня, щёлкал как орешки
🤡3🤮2
❓ Какой из этих пакетов позволяет работать с низкоуровневыми системными вызовами
Anonymous Poll
33%
os
1%
fmt
70%
syscall
2%
reflect
❓ Какой паттерн используется для организации обмена данными между объектами без прямых ссылок
Anonymous Poll
53%
Mediator
25%
Observer
13%
Decorator
6%
Builder
5%
Proglibator
😁2
❓ В Go ошибки могут быть обработаны в конструкции ________ для выполнения кода при наличии ошибки
Anonymous Poll
25%
switch
84%
if
2%
for
8%
select
🌚3👍1
❓ Что произойдёт, если в одной горутине будет вызван defer внутри select
Anonymous Poll
12%
defer сработает только при срабатывании таймаута
73%
defer сработает сразу после завершения работы горутины
10%
defer никогда не сработает
7%
defer вызовет панику
❓ Что произойдёт, если вы попытаетесь присвоить значение переменной типа int переменной типа *int
Anonymous Poll
73%
Ошибка компиляции
14%
Присвоение произойдёт без ошибок
12%
Значение будет скопировано в указатель
3%
Программа выйдет с ошибкой во время выполнения
❓ Какой протокол обычно используется для потоковых данных, например, для видео или аудио
Anonymous Poll
6%
ICMP
3%
FTP
6%
TCP
87%
UDP
❓ Задачи этой недели мне _____________
Anonymous Poll
32%
Понравились
33%
Не понравились
32%
Не определился
4%
Напишу своё в комментариях
❓ Как можно запустить фаззинг-тесты в Go
Anonymous Poll
15%
go fuzz -test
76%
go test -fuzz
6%
go fuzz -run
5%
go run fuzz.go