發現一個有關error的非常奇怪的問題

deepzz發表於2017-05-11

可能是個人知識點有限,遇到這個非常奇怪的問題。

main 函式裡通過 errors.New() 初始化了一個 err。 Error() 函式返回了一個 *Err 的空指標 nil。

問題來了,fmt.Println() 中的列印結果是 <nil>, true

why,為什麼 err != nil 是 true??那是不是其它場景也會出現?

package main

import (
    "errors"
    "fmt"
)

type Err struct {
    err string
}

func (e *Err) Error() string {
    return e.err
}

func Error() *Err {
    return nil
}

func main() {
    var err = errors.New("init error")

    err = Error()
    fmt.Println(err, err != nil)
}
更多原創文章乾貨分享,請關注公眾號
  • 發現一個有關error的非常奇怪的問題
  • 加微信實戰群請加微信(註明:實戰群):gocnio

相關文章