我是新手,用谷歌搜索了一些关键词,但没有成功。package tutorialimport( "bytes" "context" "reflect" "database/sql/driver" "errors" "fmt" "github.com/apache/thrift/lib/go/thrift" "shared")// (needed to ensure safety because of naive import list construction.)var _ = thrift.ZEROvar _ = fmt.Printfvar _ = context.Backgroundvar _ = reflect.DeepEqualvar _ = bytes.Equal
1 回答
米琪卡哇伊
TA贡献1998条经验 获得超6个赞
您正在查看的代码是由计算机程序生成的。
这个特定的计算机程序有缺陷/愚蠢:它导入在某些情况下不需要导入的包,以防万一它生成需要导入这些包的不同代码。换句话说,在查看它将生成什么代码之前,它只是导入了一堆东西。
为了弥补这个缺陷,在导入它可能不会使用的东西之后,它有一些var
声明使Go编译器认为这些东西被使用,这样编译器就不会抱怨(例如)fmt
或bytes
不需要导入。
更智能的代码生成器将检查它将要生成的代码,找出实际需要哪些导入,然后发出这些导入并跳过虚拟行var
。
(这就是评论短语:
naive import list construction
意味着:代码生成器天真地生成了一组特定的导入,而不查看它生成的其余代码。)
- 1 回答
- 0 关注
- 97 浏览
添加回答
举报
0/150
提交
取消