package inner
type inner struct {
I int
}
func New() inner {
return inner{I: 1}
}
package outter
import (
"testing"
)
func TestGet(t *testing.T) {
i := inner.New()
t.Log(i.I)
}
inner 是小写,理论上不应该被外部能访问,但是通过一个大写的函数,却把它暴露出来了。今天第一次看到这个写法,有点惊讶。
之前我一般都是下面两种写法:
package inner
type Inner interface {
Get() int
}
type inner struct {
i int
}
func (i *inner) Get() int {
return i.i
}
func New() Inner {
return &inner{i: 1}
}
package inner
type Inner struct {
I int
}
func New() Inner {
return Inner{I: 1}
}