跳转到主要内容

【Go语言开发】了解 Go 中的包的可见性

介绍


在 Go 中创建包时,最终目标通常是使包可供其他开发人员使用,无论是高阶包还是整个程序。通过导入包,您的代码可以作为其他更复杂工具的构建块。但是,只有某些包可用于导入。这是由包的可见性决定的。

在此上下文中的可见性意味着可以引用包或其他构造的文件空间。例如,如果我们在函数中定义一个变量,该变量的可见性(范围)仅在定义它的函数内。同样,如果您在包中定义变量,则可以使其仅对该包可见,或者也允许它在包外可见。

在编写符合人体工程学的代码时,仔细控制包的可见性很重要,尤其是在考虑到您可能希望对包进行的未来更改时。如果您需要修复错误、提高性能或更改功能,您需要以不会破坏任何使用您的包的人的代码的方式进行更改。最小化重大更改的一种方法是只允许访问包中正确使用它所需的部分。通过限制访问,您可以在内部对您的包进行更改,而不会影响其他开发人员如何使用您的包。

在本文中,您将学习如何控制包的可见性,以及如何保护只应在包内使用的部分代码。为此,我们将创建一个基本的记录器来记录和调试消息,使用具有不同程度项目可见性的包。

先决条件


要遵循本文中的示例,您将需要: