package main import ( "fmt" ) type A struct { C int } func (this *A) F() { // this.C = 10 fmt.Println("from a.F()") } func (this *A) F2() { // fmt.Println(this.C) } var a *A // a == nil func main() { a.F() // 输出from a.F() }
a.F()竟然不报错, a == nil啊
但是如果这样再调用 a.F()就会报空指针问题, 因为传到F()里面的this是nil, 不能引用C
func (this *A) F() { this.C = 10 fmt.Println("from a.F()") }
这是个坑
为什么leanote的service可以不实例化? 因为leanote的service没有属性!!