Это фундаментальное требование грамматики языка, обусловленное работой лексера.
В Go лексер автоматически вставляет точку с запятой в конец строки, если последний токен перед переносом строки является:
• идентификатор:
foo, x, myVar• литерал:
42, "hello", true•
break, continue, fallthrough, return, ++, --, ), ], }Это означает, что код вида:
func foo()
{
}
лексер преобразует в:
func foo(); // ← `;` вставлена после `)`
{
}
🐸Библиотека Go для собеса