在同一個包內的不同文件中如何使用小寫名稱的函數?

在同一個包內的不同文件中如何使用小寫名稱的函數?

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 分享