调用函数

LockLockTest
type Lock struct {
}

func (self Lock) Test() {
    fmt.Println("Test Func")
}
Lock
lock := &Lock{}
lock.Test()
LockTestLockLock

所以无论接收器是结构本身还是结构指针,我都可以通过两者调用这个函数?什么原因 . 根据我的理解,struct和struct指针完全是两种不同的类型!

界面

Locker
type Locker interface {
    Test()
}
LockTestLocker
LockTestLocker

我对语言设计很困惑 . 有人可以给我一些建议吗?