去包命名

时间:2017-03-21 10:59:07

标签: go go-chi

如何正确引用项目包?我有以下文件夹结构:

ir.actions.act_window

/sbp /models.go /controllers.go /main.go 中,我想从main.go拨打我的控制器操作。我似乎无法找到正确引用它的方法

sbp.controllers

main.go

package main import ( "net/http" ... "github.com/pressly/chi" ) var sess = session.Must(session.NewSession(&aws.Config{ Region: aws.String("ap-southeast-1"), })) var dynamo = dynamodb.New(sess) func main() { r := chi.NewRouter() r.Get("/", GetInvestments) // How do I call sbp.controller.GetInvestments? r.Post("/", AddInvestment) http.ListenAndServe(":8080", r) }

sbp/controller.go

我尝试导入" sbp / controller",甚至" github.com/jiewmeng/finance/sbp/controller"但它们似乎是自动删除我的VSCode,所以我认为它无效?

1 个答案:

答案 0 :(得分:1)

听起来您的编辑器正在自动运行goimports,这意味着它将删除未使用的导入。因此,只需将其添加到imports部分就不够了;你还必须使用导入。

看起来你的正确导入路径是“github.com/jiewmeng/finance/sbp”。然后你也需要引用它:

package main

import (
    // other imports
    "github.com/jiewmeng/finance/bp"
)

func main() {
    // whatever
    http.Handle("/somepath", http.HandlerFunc(sbp.AddInvestment))
}