package main
import (
......
"fmt"
......
)
func main() {
......
xxx:=new(xxx)
fmt.Println("1")
......
xxx.Println()//confusing
}
type xxx struct{
one int
two string
}
func (yyy *xxx) Println(){
fmt.Println("2")
yyy.Print(3)//confusing too
}
func (this *xxx) Print(a int){
fmt.Println(a)
}
这个问题是追我的,什么是最快的方法来判断它是包名还是对象名,如上面的代码,在main func中,fmt被称为包名,因为大家都知道。但是什么时候来到xxx.Println(),你怎么知道是包名还是对象名,假设main函数有很多行代码,很难确定对象“xxx”的声明,还有,导入的包很多,你很难搜索 import() 的每一行来查看包中是否列出了“xxx”,你怎么知道 xxx 是什么?
和func Println一样,你直接到yyy.Print(3),func声明中的接收者很难找到,因为它在屏幕外,你怎么知道yyy是最快的方式,yyy可能是包名称和接收器名称。
如果没有这样更简单的方法,那是否意味着我应该始终首先搜索 import() 列出的包,然后将屏幕滚动到 func 声明的最开头以查找接收者名称是什么,然后我就可以知道了这是什么?听起来太花时间了!
相关分类