gpt4 book ai didi

go - 错误。在 Go 1.13 中

转载 作者:行者123 更新时间:2023-12-02 07:46:40 25 4
gpt4 key购买 nike

Go 1.13 引入了错误的新功能,以简化错误处理。在 Go 1.13 之前,我通过以下方式检查代码是否有错误:

if err == nil {
// ...
}

但是 Go 的 errors.Is() 帮助我正确地做到了:

It’s a sensible way to future-proof your code and prevent issues caused by you — or any packages that your code imports — wrapping errors in the future.

对于这样的情况来说这是可以的:

if errors.Is(err, sql.ErrNoRows) {
// ...
}

这是否意味着我必须将所有 err == nil 语句更改为:

if errors.Is(err, nil) {
// ...
}

最佳答案

不,你不知道。 error.Is 检查底层错误值。如果某些代码返回 sql.ErrNoRows 并且稍后决定包装该错误,则errors.Is(err, sql.ErrNoRows) 会像以前一样继续工作,但 err == sql.ErrNoRows 将计算为 false。

nil 错误值意味着没有错误,因此没有任何内容可以换行。您无法编写任何代码来更改 err != nil 的计算结果,同时仍然不返回任何错误。只有一种方法可以不返回错误:nil。

关于go - 错误。在 Go 1.13 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58553852/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com