Golang,将struct的nil指针转换为错误,但不能获得nil值

时间:2015-12-17 19:17:45

标签: pointers go casting null

为什么c未打印,而其值为nil

我误解了什么吗?

package main

import "fmt"

type MyError struct {
    Why string
    What string
}

func (this *MyError) Error() string {
    return this.What + this.Why
}

func main() {
    nilError := error(nil)
    if nilError == nil {
        fmt.Println("a")
    }
    if NilMyError() == nil {
        fmt.Println("b")
    }   
    if NilErrorFromMyError() == nil {
        fmt.Println("c")
    }
}

func NilErrorFromMyError() error {
    return NilMyError()
}

func NilMyError() *MyError {
    return nil
}

结果:

a
b

0 个答案:

没有答案