Я вижу следующие высказывания из camlistore (http://code.google.com/p/camlistore/source/browse/pkg/cacher/cacher.go).golang соответствие требованиям проверка типа компиляции
Я понимаю, что переменные не создаются и операторы обеспечивают проверку компилятора, CachingFether реализует государственные функции StreamingFetcher и SeekFetcher. Часть RHS использует синтаксис конструктора указателя с параметром nil. Что означает этот синтаксис в языке Go?
Мне любопытно, почему эта проверка необходима. Мне кажется, что если они когда-либо были/использованы/эти значения, компилятор выполнит чек? Единственное объяснение, о котором я могу думать, это то, что они используют пакет 'unsafe', и они собираются выполнять неконтролируемые операции, которые они хотят, чтобы компилятор все равно проверял. Но они не импортируют 'unsafe' в этот файл. Есть идеи? – joshlf
Это статическое (время компиляции), если тип RHS удовлетворяет интерфейсу LHS. При такой проверке компилятор немедленно отклоняет случайное изменение набора методов RHS. – zzzz