Golang 1.17.x 空指针类 能正常调用类方法

xiaoyi510 · 2021-12-30 14:32:25 · 1042 次点击

看看下面这几种方式能否对你有启发

type A struct {
}

func (a *A) Exec() string {
    return "123"
}

func Exec(a *A) string {
    return "123"
}

func TestNil(t *testing.T) {
    r1 := (*A).Exec(nil)
    t.Log(r1) // 输出 123

    r2 := (*A)(nil).Exec()
    t.Log(r2) // 输出 123

    r3 := Exec(nil)
    t.Log(r3) // 输出 123
}
#3
更多评论

image.png

不对 我使用1.16.5也不报错

朋友的go就报错 image.png

#1
func (this *A) Test() string {
    return "123"
}

不报错

报错 此报错我觉得是正常的毕竟没实例化

func (this A) Test() string {
    return "123"
}
#2