Не могу понять, что происходит при данной операции

Нашел на github пример работы с fuse, но не понял, что происходит в данной строчке кода:

var _ fs.FS = (*FS)(nil)

Что это?

Ссылка на код: https://github.com/bazil/zipfs/blob/master/main.go#L79
Понимаю, что для кого-то этот вопрос может показаться смешным, но я почти не знаком с go, прочел только базовый гайд, поэтому, возможно что-то упустил или это уже какие-та особенности go.


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

Автор решения: Senior Pomidor

var _ fs.FS = (*FS)(nil) указывается, чтобы во время компиляции узнать, что структура FS имплементирует интерфейс fs.FS. Если нет, то не скомпилируется и выдаст ошибку. _ указывает, что значение нужно отбросить. По сути это static check.

Это очень удобно, если интерфейс часто может меняться, а структура должна продолжать реализовывать интерфейс

→ Ссылка