4 ms·
That's not really true though, I've used golang for years and never had semicolons added automatically.
by xandrius 2y ago
That's not really true though, I've used golang for years and never had semicolons added automatically.
- voidUpdate 2y agoI don't mean it actually adds them to the file itself, its like it adds virtual ones during compilation. Try placing the { from the func main() { on a new line and it will fail to compile
- xandrius 2y agoOh, I see, that's what you meant. Thanks for clarifying :)
- arp242 2y agoThe Go compiler inserts semi-colons. https://go.dev/ref/spec#Semicolons https://go.dev/ref/spec#Semicolons If you follow those rules, you will see that this: if true; { fmt.Println() } else { fmt.Println() } Will get rewritten to: if true; { fmt.Println(); }; else; { fmt.Println(); }; And that won't work. That's why the braces need to be as "} else {". and "if .. {". It used to be that the compiler gave some pretty confusing errors about semi-colons on this, but it seems that's been improved now. JavaScript has similar semi-colon insertion by the way, but with some different (more confusing) rules.
- xandrius 2y agoThat's really neat, it had escaped me till now. Thanks for the explanation (today I'm one of the lucky 10,000!)