我相信我在某个时候在 Go 标准库中看到了一个函数,如果出现错误,它可以让您通过返回它来处理所述错误。但是,如果您选择忽略该错误,它会改为 panic 。因此,例如:
err := theFunction() // No panic
theFunction() // Panic
_ := theFunction() // Panic
今天想起这个功能,想了想怎么可能实现,但是什么也想不出来。也许与 defer
有关?无论如何,在决定检查该函数的源代码以获取一些答案时,我意识到我不记得它的名称,也不记得它所在的包。因此,我来到这里希望学习:
最佳答案
通常,解决方案是有两个函数,一个 Thing() error
和 MustThing()
,其中 Must
版本 panic 而不是返回错误。您可以在 template
的 stdlib 中看到这方面的示例。和 regexp
包。
关于go - 仅当丢弃返回的错误时才发生 panic ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65566391/