Не могу понять, что происходит при данной операции
Нашел на github пример работы с fuse, но не понял, что происходит в данной строчке кода:
var _ fs.FS = (*FS)(nil)
Что это?
Ссылка на код: https://github.com/bazil/zipfs/blob/master/main.go#L79
Понимаю, что для кого-то этот вопрос может показаться смешным, но я почти не знаком с go, прочел только базовый гайд, поэтому, возможно что-то упустил или это уже какие-та особенности go.
Ответы (1 шт):
var _ fs.FS = (*FS)(nil) указывается, чтобы во время компиляции узнать, что структура FS имплементирует интерфейс fs.FS. Если нет, то не скомпилируется и выдаст ошибку. _ указывает, что значение нужно отбросить. По сути это static check.
Это очень удобно, если интерфейс часто может меняться, а структура должна продолжать реализовывать интерфейс