I am going through "A Tour of Go" tutorial.
I would like to check the answer to this question:
Note: a call to fmt.Sprint(e)
inside the Error
method will send
the program into an infinite loop. You can avoid this by converting
e
first: fmt.Sprint(float64(e))
. Why?
I believe this is because when the Sprint
function is called, since the error is non-nil, the Error function()
will again be called, and so forth, resulting in an infinite loop.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…