Does Go have an “infinite call stack” equivalent?
I'm a newbie to Go, coming from Node.JS. In Node, if I run this: function run(tick = 0) { if (tick < 1000000) { return run(tick + 1); } return 0; } console.log(run()); The program will crash because the maximum call stack size was exceeded. If I do this in Go: package main import "fmt" func run(tick int) (int) { if (tick < 1000000) { return run(tick + 1) } return 0 } func main() { fmt.Println(run(0)) } This will run and print 0 to stdout. My questions are: Is there a maximum number of calls above which the Go example I gave would fail? Is code like this an anti-pattern in Go? In Go, goroutines