我正在关注 golang wiki instruction并发现这令人困惑:
func loadPage(title string) (*Page, error) {
filename := title + ".txt"
body, err := ioutil.ReadFile(filename)
if err != nil {
return nil, err
}
return &Page{Title: title, Body: body}, nil
}
如果err不等于nil,为什么返回nil?
难道不应该是:
if err != nil {
return err
}
就像golang errors and values中描述的那样?
最佳答案
该函数返回 2 个东西:一个页面(指针)和一个错误。如果发生错误,则没有要返回的页面,因此返回的第一个值为 nil
。返回的第二个值是错误,err
,这是应该的。
关于go - 如果 error 不是 nil 为什么要同时返回 err 和 nil?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52007191/