Вот подборку информации про такие принципиальные механизмы Go, да ещё желательно от участвовавших в создании Go, я хочу себе здесь собрать... С толкованиями в примерах кода.• регулярный синтаксис (для разбора не нужна таблица символов);
• сборка мусора (исключительно);
• отсутствие заголовочных файлов;
• явные зависимости;
• отсутсвие циклических зависимостей;
• константы - это просто числа;
• int и int32 — это разные типы;
• регистр букв имён устанавливает видимость;
• методы для любого типа (без классов);
• без наследования подтипов (без подклассов);
• инициализация на уровне пакета и строго определенный порядок инициализации;
• файлы компилируемые вместе в пакет;
• глобальные переменные уровня пакета представлены в любом порядке;
• никаких арифметических преобразований (помогают константы);
• интерфейсы являются неявными (без объявления «реализует»);
• встраивание (без повышения до суперкласса);
• методы объявляются как функции (без специальной локализации);
• методы - это просто функции;
• интерфейсы - это просто методы (без данных);
• методы отождествляются только по имени (не по типу);
• без конструкторов и деструкторов;
• постинкремент и постдекремент - это операторы, а не выражения;
• нет преинкремента или преддекремента;
• присваивание не является выражением;
• определен порядок вычислений в присвоениях, функциональных вызовах (без «точек следования», известных из C/C++1);
• нет арифметики указателей;
• память всегда обнуляется;
• допустимо брать адрес локальной переменной;
• нет указателя this в методах;
• сегментированные стеки;
• нет const или других типов аннотаций;
• нет шаблонов;
• нет исключительных ситуаций;
• встроенный тип строк, срезы, ассоциативные хэши;
• проверка границ массива;
P.S. Т.е. здесь тема об "изюминках" Go