不同文件上的软件包名称相同

时间:2019-05-13 04:31:17

标签: go

同一文件夹中不同文件中的软件包名称相同。

a.go

package abc

type B struct {
}
b.go

package abc

func (b *B) Run() {
}

文件b.go中定义的函数可以在不导入任何内容的情况下访问a.go吗?

将代码分成两个不同的文件的原因是什么?

2 个答案:

答案 0 :(得分:4)

文件b.go中定义的函数可以在不导入任何内容的情况下访问a.go吗?是的

将代码分成两个不同文件的背后原因是什么?这只是一种结构化机制,例如,当文件过大时。

答案 1 :(得分:1)

是的,b.go可以访问a.go中的Public函数/变量,反之亦然。我们将它们放在不同文件中的主要原因是将所有相关方法和功能保持在一起。 例如: 打包员工中:

  • 将所有用例方法组合到一个文件中(我们称其为usecase.go)
  • 将所有存储库方法组合到另一个文件中(我们称其为repository.go)
  • 将所有常量/枚举(如常量)组合到另一个文件中(我们称其为constants.go)

所有这些都在同一个域包员工下可用。 每个文件都可以访问其他文件的公共变量/函数。在这里usecase.go GetEmployeeData()将访问repository.go> GetEmployeeForID(ID int) 同样,相同的用例方法GetEmployeeData()将访问constants.go Employee_Type常量,以基于它来决定一些逻辑。

我们将内容归类到文件中,并尝试使其更小且易于阅读。 希望这会有所帮助。