登录
首页 >  Golang >  Go问答

为什么在 Error() 方法中调用 fmt.Sprint(e) 会导致无限循环?

来源:Golang技术栈

时间:2023-03-22 20:18:39 275浏览 收藏

珍惜时间,勤奋学习!今天给大家带来《为什么在 Error() 方法中调用 fmt.Sprint(e) 会导致无限循环?》,正文内容主要涉及到golang等等,如果你正在学习Golang,或者是对Golang有疑问,欢迎大家关注我!后面我会持续更新相关内容的,希望都能帮到正在学习的大家!

问题内容

我正在阅读“A Tour of Go”教程。

我想检查这个问题的答案:

注意:fmt.Sprint(e)对方法内部的调用Error将使程序进入无限循环。您可以通过先转换来避免这种情况 efmt.Sprint(float64(e)). 为什么?

我相信这是因为当Sprint函数被调用时,由于错误是非零的,所以Error function()会再次调用,以此类推,导致无限循环。

正确答案

fmt.Sprint(e)将调用e.Error()将值转换e为 a string。如果该Error()方法调用fmt.Sprint(e),则程序将递归直到内存不足。

e您可以通过将 转换为不带StringorError方法的值来中断递归。

终于介绍完啦!小伙伴们,这篇关于《为什么在 Error() 方法中调用 fmt.Sprint(e) 会导致无限循环?》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表