gpt4 book ai didi

google-app-engine - Go App Engine 项目的包结构

转载 作者:IT王子 更新时间:2023-10-29 01:22:31 25 4
gpt4 key购买 nike

我一直在关注Google App Engine's Go Tutorial .

根据教程,我应该创建一个根项目目录,所有与项目相关的源文件都应该放在这个目录中。因此,我的工作区看起来像这样:

/MyProject
/router
router.go
/items
items.go

当我尝试像这样在 router.go 中引用 items.go 时:

router.go

import(
"items"
)

func itemsHandler(writer http.ResponseWriter, request * http.Request){
anItem := items.Item{Id: 245,Name: "Chocolate",Price: 1.50};
}

应用程序无法编译,因为 items 未定义 现在我很困惑 Google App Engine 上的 Go 项目应该如何组织。我想知道的是

  1. 我的项目目录应该位于 Go SDK 的 gopath 目录中还是可以位于任何地方?教程没有说清楚。

  2. Go App Engine 项目的结构是什么?如何导入源文件?

最佳答案

您的问题的原因似乎是缺少 src目录。 .

  1. 是的,您的项目目录应该在 GOPATH 中. Go 期望目录结构遵循描述 workspaces 的文档中的描述。所有包裹都位于 src目录。编译时,它会在 src 文件夹下的 gopath 中查找包(如果已安装,则为 pkg)。尽管 App Engine 文档没有具体说明这一点,但我的理解是该结构应与 src 相匹配。结构。

  2. 目录结构的一个例子是这样的:从设置 GOPATH=/myproject 开始.在GOPATH目录下,具有以下结构(以您的一些包为例)。

    /src
    /MyApp/app.yaml
    /MyApp/myappmain.go
    /items/items.go
    /router/router.go

当我构建时,我通过为它提供 MyApp 文件夹来运行开发应用程序服务器 dev_appserver ./MyApp

我已经通过将 log.Println("<pkg>") 进行了测试在每个包裹中init() func,它们都只运行一次,因为有些人表示如果你的结构有误,就会出现问题。

关于google-app-engine - Go App Engine 项目的包结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22391847/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com