Пустой интерфейс нужен для универсальности: он позволяет писать код, не привязанный к конкретным типам. Примеры использования включают универсальные контейнеры (например, массивы и словари) и функции, работающие с любыми типами. Например, в логировании часто используют interface{} для передачи любых данных.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Anonymous Quiz
11%
Для документирования кода
19%
Для управления форматированием вывода
65%
Для добавления метаданных к полям структуры
5%
Для изменения типов данных
❤1
Anonymous Quiz
48%
-
31%
_.
15%
ignore
6%
skip
🤔1
Это интерфейс без методов. Он совместим с любым типом, так как не накладывает ограничений на его реализацию. Это мощный инструмент для работы с универсальными данными.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Anonymous Quiz
2%
Glide
3%
NPM
1%
Maven
93%
Go Modules
💊15
Anonymous Quiz
7%
Использование виртуального окружения
4%
Установка зависимостей глобально
11%
Вендоринг
78%
Пакеты
💊12
Проверить соответствие структуры интерфейсу можно двумя способами. Первый – компилятор автоматически проверяет это, если структура реализует все методы интерфейса. Второй – можно явно проверить это с помощью утверждений (type assertion) или через переменные вида var _ InterfaceName = (*StructName)(nil).
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
💊3👍1
Anonymous Quiz
2%
Используя ключевое слово private
95%
Начиная имя с маленькой буквы
2%
Начиная имя с подчёркивания _
1%
Используя аннотацию @internal
💊2
Anonymous Quiz
66%
database/sql
7%
database/go
9%
sql/go
18%
go/sql
👍1
Это интерфейс, содержащий метод Close() error, который сигнализирует об освобождении ресурсов, например, файлов или соединений. Если объект реализует Closer, его можно безопасно завершить, вызвав Close, что предотвращает утечки ресурсов.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Anonymous Quiz
42%
sql.Open()
42%
sql.Connect()
16%
sql.New()
1%
sql.Start()
🔥3
Anonymous Quiz
6%
Использовать массив
4%
Использовать слайс
82%
Использовать карту
8%
Использовать структуру
💊16🤔2
В отличие от Java или C#, в Go интерфейсы не требуют явного указания их реализации. Вместо этого соответствие определяется автоматически, если тип содержит методы, описанные в интерфейсе. Это упрощает код и уменьшает количество зависимостей.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥2💊1
Anonymous Quiz
89%
Компиляция
5%
Интерпретация
0%
Скриптинг
5%
Ассемблирование
🤯6😁2
Anonymous Quiz
19%
go run tests
1%
go execute
79%
go test
1%
go check
Интерфейс состоит из двух частей: указателя на динамический тип и указателя на данные, связанные с этим типом. Такая структура позволяет интерфейсу хранить и управлять значениями разных типов динамически.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥3
Anonymous Quiz
7%
Удаляет неиспользуемые файлы
1%
Оптимизирует код
64%
Обновляет зависимости
28%
Удаляет неиспользуемые зависимости
💊24👍2
Anonymous Quiz
1%
Компиляция
37%
Инкапсуляция
43%
Модуляризация
19%
Рефакторинг
💊1
Это интерфейс, в котором отсутствует тип и значение. Если интерфейс имеет тип, но значение равно nil, он больше не считается полностью nil.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯4
Anonymous Quiz
70%
TypeOf()
20%
GetType()
10%
ReflectType()
0%
DetermineType()