Sobes.tech
Back to questions
Junior — Middle
88

Какими способами можно проверить, соответствует ли структура заданному интерфейсу?

Answer from AI

sobes.tech AI

В Go проверка соответствия структуры интерфейсу происходит неявно — если структура реализует все методы интерфейса, то она ему соответствует.

Для явной проверки на этапе компиляции часто используют компиляционную проверку с помощью присваивания:

type MyInterface interface {
    DoSomething()
}

type MyStruct struct {}

func (m MyStruct) DoSomething() {}

// Компиляционная проверка
var _ MyInterface = (*MyStruct)(nil)

Если MyStruct не реализует MyInterface, компилятор выдаст ошибку. Это удобный способ убедиться, что структура соответствует интерфейсу без запуска программы.