From this example: https://gobyexample.com/closures
If we change:
fmt.Println(nextInt())
fmt.Println(nextInt())
fmt.Println(nextInt())
to
fmt.Println(intSeq())
fmt.Println(intSeq())
fmt.Println(intSeq())
go run
will fail with error: ./prog.go:32:5: Println arg intSeq() is a func value, not called
But from this example: https://gobyexample.com/recursion
fmt.Println(fact(7))
We can call fact(7)
function as fmt.Println
's argument. Why we have difference?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…