👣 Как проверить, имплементирует ли переменная интерфейс?



В Go, реализация интерфейса является неявной, поэтому используется конструкция вида

var _ myInterface = &myImplementation{}:

type T struct{}

var _ I = T{} // Проверка, что T имплеменирует I.

var _ I = (*T)(nil) // Проверка, что *T имплеменирует I.




Обычно это указывают, чтобы ошибки были выявлены уже во время компиляции.



@golang_interview