【Golang】go语言的结构体方法骚操作

最近看到一个 go 结构体不常见用法,下面是代码:

package main

import "fmt"

type Struct struct {}

func (t Struct) StructMethod () {
	fmt.Println ("StructMethod ()")
}

func (t *Struct) PtrMethod () {
	fmt.Println ("PtrMethod ()")
}

func main () {
	Struct.StructMethod (Struct {})
	(*Struct).StructMethod (&Struct {})
	(*Struct).PtrMethod (&Struct {})
	(*Struct).PtrMethod (nil)
}

结果:

1 Like

还以为又是部署了一个R1 :tieba_087:

1 Like

:tieba_003: :tieba_003: :tieba_003:

这太像C了

(*Struct) 像极了c中,指针的解引用

好像是method的第一个参数是自己,有时候会用到这个逻辑。

第四种 nil 的处理有点意思

没看懂特殊点在哪?

此话题已在最后回复的 30 天后被自动关闭。不再允许新回复。