如果错误不是零,为什么返回err和nil?

Vie*_*iet 3 return-value go

我正在关注golang wiki指令并发现这令人困惑:

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
}
Run Code Online (Sandbox Code Playgroud)

如果错误不等于零,为什么返回零?

不应该是:

if err != nil {
    return err
}
Run Code Online (Sandbox Code Playgroud)

喜欢它在golang错误和值中描述?

Leo*_*eon 5

该函数返回2个东西:页面(指针)和错误.如果发生错误,则没有要返回的页面,因此返回的第一个值是nil.返回的第二个值是错误,err应该如此.

  • 是的,无论何时从函数返回`,都必须返回函数返回的所有值. (2认同)