Golang:导入子模块时找不到包函数

我是 Golang 的新手,目前正在学习如何打包模块。我确实按如下方式设置了我的包:


http://img2.mukewang.com/63b3df3600013efc03870206.jpg

这是我的main.go文件:


package main


import (

    "github.com/Arka-cell/shops-golang/api"

)


func main() {

    api.Run()

}


这是我的server.go文件:


package api


import (

    "github.com/gin-gonic/gin"

    "github.com/Arka-cell/shops-golang/api/controllers"

)


func Run() {

    router := gin.Default()

    router.GET("/", controllers.getHomePage)

    router.Run("localhost:8080")

}


最后,这是home.go具有getHomePage提升功能的文件undefined error:


package controllers


import (

    "net/http"


    "github.com/gin-gonic/gin"

)


func getHomePage(c *gin.Context) {


    c.IndentedJSON(http.StatusOK, gin.H{"message": "Welcome"})

}


我已经使用了如下相同的包装并且它工作得很好,但是对于这个错误我不知道如何追踪问题。运行 main.go 时;这是错误显示的内容:


api/server.go:10:18: cannot refer to unexported name controllers.getHomePage

api/server.go:10:18: undefined: controllers.getHomePage


一只名叫tom的猫
浏览 89回答 1
1回答

LEATH

解决了,首字母小写的函数被认为是私有的,不能在它们的包之外访问。只好getHomePage求助GetHomePage。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go