复杂的项目里可以使用.的方式导入包吗?

使用.的方式导入包的时候golint就会提示警告:



should not use dot imports



虽然可以忽略但看着很别扭。带上包名又真的很别扭啊。


假如我在foo包中定义了一个变量DB用于存放数据库连接,定义了一个Log用于存放log库实例,现在要在bar包调用,就要写foo.DB.Exec("glhf")、foo.Log.Info("gg")这样。而用.导入的方式是这样:
DB.Exec("glhf")、Log.Info("gg"),显然后者看起来更美观自然啊。


各位在项目中会采用.方式吗?或者公司有相关规定吗?

已邀请:

yougg

赞同来自: qi19901212 jiazhoulvke CurveSoft

.导入包就是个不应该存在的功能.

willee

赞同来自: jiazhoulvke

如果导入的两个包内有同名的函数呢

tt_0411 - Less is better.

赞同来自: jiazhoulvke

有两种办法:


1) db, log 析出两个包 (适合代码量较大的项目)


import "xxx/foo/db"
import "xxx/foo/log"

...

db.Exec(...)
log.Info(...)

2) 使用 包的函数, 而不是 实例的方法 (适合代码量比较小的项目)


foo.LogInfo(...)
foo.ExecDB(...)

foo.Log.Info 这种用法和标准库的代码风格不一致, 可以看一下 flags, log 等标准库里面 包的函数 和 实例的方法 之间的设计方法。

要回复问题请先登录注册