在同一个包内的不同文件中如何使用小写名称的函数?

在同一个包内的不同文件中如何使用小写名称的函数?

go语言中同一个包内不同文件使用小写函数名

Go语言的包管理机制决定了包内可见性。在同一个Go包内,所有文件都可以直接访问包内声明的函数和变量,而无需考虑其名称大小写。

本文以一个名为gin_demo的项目为例,其结构如下:

gin_demo ├── app │   └── blog │       ├── handler.go │       └── router.go ├── go.mod ├── go.sum ├── main.go └── routers     └── routers.go

main.go文件已引入gin_demo/app/blog包,并使用router.go中导出的函数。现在,我们需要在app/blog/router.go中使用handler.go中的ahandler和bhandler函数。

handler.go:

package blog  import "github.com/gin-gonic/gin"  func ahandler(c *gin.Context) {     // 处理逻辑 }  func bhandler(c *gin.Context) {     // 处理逻辑 }

router.go:

package blog  import (     "github.com/gin-gonic/gin" )  func routers(e *gin.Engine) {     e.GET("/a", ahandler)     e.GET("/b", bhandler) }

由于router.go和handler.go属于同一个blog包,因此router.go可以直接调用ahandler和bhandler,无需import或将函数名改为大写。 Go语言包内的可见性允许这种直接调用。 因此,router.go中的代码无需修改,可以直接使用ahandler和bhandler。

总结:在同一个Go包内,文件之间可以直接访问包内声明的函数和变量,无论其名称是否为大写字母开头。 不需要显式导入或导出。

需要注意的是,虽然包内可见,但是良好的代码风格仍然建议将对外暴露的函数使用大写字母开头,以明确表示其为包的公共接口。 而内部使用的函数,使用小写字母开头,可以提高代码的可读性和可维护性。

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享