Как в golang проверить реализовывет ли поле структуры определенный интерфейс?

Как в golang проверить реализовывет ли поле структуры определенный интерфейс ? Может можно через reflect? Вот пример, как мне проверить что поле е структуры Test реализовывет интерфейс Exemple?

type Example interface {
    String() string
}

type ExampleImpl struct {
    
}

func (e ExampleImpl) String() string {
    return "Exemple"
}

type Test struct {
    e ExampleImpl
}

Ответы (2 шт):

Автор решения: Tema K
var _ Example = (*ExampleImpl)(nil)

Если кратко, то это типизированный nil, проверяет реализацию интерфейса, самому интерфейсу. Подробности в докладе

→ Ссылка
Автор решения: aksioto

В рантайме можно сделать проверку таким образом:

_, ok = interface{}(ExampleImpl{}).(Example)

https://go.dev/play/p/YY1vBl-xvXq

→ Ссылка