Объяснение👆



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

Сравнение двух значений интерфейсов (с помощью оператора `==`) происходит в 3 этапа:

1. если одно из двух значений интерфейса является нулевым значением интерфейса, то результатом сравнения будет то, является ли другое значение интерфейса также nil.

2. если динамические типы двух значений интерфейса имеют два разных типа, то результат сравнения будет false.

3. для случая динамических типов когда два значения интерфейса имеют одинаковый тип:

- если тот же динамический тип является несопоставимым типом, возникнет паника. В этом вопросе это map[int]int - несопоставимый тип.

- иначе результат сравнения является результатом сравнения динамических значений двух значений интерфейса.



Специцикация: https://golang.org/ref/spec#Comparison_operators