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?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…