❓Какое поведение неверное для defer
Anonymous Poll
21%
Выполняется в порядке LIFO
13%
Может захватывать значения переменных при объявлении
55%
Работает даже после os.Exit()
10%
Не выполнится, если внутри go-рутины
11%
Узнать ответ
Задача: Имеется определенное количество монет разных номиналов. Необходимо выдать сдачу или вернуть nil, если это невозможно.
Жадный алгоритм:
1. Начинаем с самой крупной доступной монеты.
2. Берем максимальное количество этой монеты.
3. Переходим к следующей меньшей монете.
4. Повторяем процесс, пока сдача не будет полностью выдана.
Реализацию можно увидеть на картинке. 🔼
Жадный алгоритм:
1. Начинаем с самой крупной доступной монеты.
2. Берем максимальное количество этой монеты.
3. Переходим к следующей меньшей монете.
4. Повторяем процесс, пока сдача не будет полностью выдана.
Реализацию можно увидеть на картинке. 🔼
❓Какой из факторов не влияет на RPS?
Anonymous Poll
7%
Производительность сервера
9%
Оптимизация кода приложения
70%
Скорость интернета у пользователя
10%
Количество ядер процессора на сервере
13%
Узнать ответ
❓Что означает термин «first-class functions» в контексте языка Go?
Anonymous Poll
10%
Функции можно вызывать только внутри main().
4%
Функции могут вызываться рекурсивно, но не могут быть переданы в качестве аргумента.
61%
Функции можно передавать в качестве аргументов, возвращать из других функций и
2%
Функции в Go всегда анонимны и не могут иметь имена.
25%
Узнать ответ
❓Какой метод разрешения коллизий использует новая map?
Anonymous Poll
12%
Линейные списки
15%
Линейное пробирование
2%
Линейный проглиб.ио
43%
Двойное хеширование с линейной адресацией
30%
Узнать ответ
❓ Вам нужно выгрузить несколько строк из базы данных, какой метод будете исполльзовать?
Anonymous Poll
58%
Query()
25%
QueryRow()
11%
Exec()
2%
Prepare()
2%
ProgLib()
8%
Узнать ответ
❓Влияет ли паника в одной горутине на другие горутины?
Anonymous Poll
54%
Да
37%
Нет
11%
Узнать ответ
❓В какой версии Go была внедрена Swiss Table для реализации map?
Anonymous Poll
3%
1.19
2%
1.20
4%
1.21
3%
1.22
6%
1.23
64%
1.24
22%
Узнать ответ
Воспроизводится ошибка 404 при нескольких автомиграциях, где ошибка? gin
package db
import (
"awesomeGin/models"
"log"
"gorm.io/driver/postgres"
"gorm.io/gorm"
)
func Init(url string) *gorm.DB {
db, err := gorm.Open(postgres.Open(url), &gorm.Config{})
DisableForeignKeyConstraintWhenMigrating: true ,
if err != nil {
log.Fatalln(err)
}
db.AutoMigrate(&models.Book{})
db.AutoMigrate(&models.Game{})
return db
}
package db
import (
"awesomeGin/models"
"log"
"gorm.io/driver/postgres"
"gorm.io/gorm"
)
func Init(url string) *gorm.DB {
db, err := gorm.Open(postgres.Open(url), &gorm.Config{})
DisableForeignKeyConstraintWhenMigrating: true ,
if err != nil {
log.Fatalln(err)
}
db.AutoMigrate(&models.Book{})
db.AutoMigrate(&models.Game{})
return db
}
❓ Каково назначение CGO_ENABLED=0?
👻 — Включает использование CGo, позволяя коду на Go обращаться к C-функциям.
🌚 — Уменьшает производительность Go-кода, поскольку CGo работает быстрее.
⚡️ — Отключает CGo, создавая полностью независимый бинарный файл.
🎉 — Требует, чтобы все зависимости были написаны на чистом Go.
👾 — Узнать ответ
🐸Библиотека задач по Go
👻 — Включает использование CGo, позволяя коду на Go обращаться к C-функциям.
🌚 — Уменьшает производительность Go-кода, поскольку CGo работает быстрее.
⚡️ — Отключает CGo, создавая полностью независимый бинарный файл.
🎉 — Требует, чтобы все зависимости были написаны на чистом Go.
👾 — Узнать ответ
🐸Библиотека задач по Go
✏️ Создайте ограничитель запросов (Rate Limiter)
Задача:
• Необходимо разработать ограничитель запросов, который будет ограничивать количество запросов от одного клиента не более 5 раз в секунду.
• Запросы, которые превышают установленный лимит, должны быть заблокированы.
Решение в картинках ⬆️
🐸Библиотека задач по Go
Задача:
• Необходимо разработать ограничитель запросов, который будет ограничивать количество запросов от одного клиента не более 5 раз в секунду.
• Запросы, которые превышают установленный лимит, должны быть заблокированы.
Решение в картинках ⬆️
🐸Библиотека задач по Go
Какой пакет необходим для разработки исполняемого приложения на Go?
Библиотека задач по Go.
Библиотека задач по Go.
Какой идентификатор можно использовать из другого пакета?
👻 — func calculateSum(a, b int) int {}
🌚 — func CalculateSum(a, b int) int {}
⚡️ — private func CalculateSum(a, b int) int {}
🎉 — func (s *Sum) calculate() int {}
🐸Библиотека задач по Go
👻 — func calculateSum(a, b int) int {}
🌚 — func CalculateSum(a, b int) int {}
⚡️ — private func CalculateSum(a, b int) int {}
🎉 — func (s *Sum) calculate() int {}
🐸Библиотека задач по Go
❓ Что проверяет функция errors.Is(err, ErrNotFound)?
👻 — Она определяет, является ли err экземпляром ErrNotFound, включая обёрнутые ошибки.
🌚 — Она проверяет, совпадает ли err с переменной ErrNotFound.
⚡️ — Она всегда возвращает false, так как функции errors.Is() не существует.
🎉 — Это устаревший метод, теперь используется сравнение err == ErrNotFound.
🐸 Библиотека задач по Go
👻 — Она определяет, является ли err экземпляром ErrNotFound, включая обёрнутые ошибки.
🌚 — Она проверяет, совпадает ли err с переменной ErrNotFound.
⚡️ — Она всегда возвращает false, так как функции errors.Is() не существует.
🎉 — Это устаревший метод, теперь используется сравнение err == ErrNotFound.
🐸 Библиотека задач по Go
❓ Как вам задачи прошедшей недели
Anonymous Poll
9%
Сложновато 😣
38%
В самый раз 👍
58%
Слишком просто, надо бы сложнее 👀
Можно ли передавать канал в функцию как аргумент?
— Да, можно передать в функции.
— Нет, каналы нельзя передавать в функции.
— Да, но только если канал объявлен как chan int.
Библиотека задач по Go.
— Да, можно передать в функции.
— Нет, каналы нельзя передавать в функции.
— Да, но только если канал объявлен как chan int.
Библиотека задач по Go.