一尘不染

运行:无法运行非主程序包

go

这是简单的go应用程序。如果运行以下代码,则会出现“运行:无法运行非主程序包”错误。

package zsdfsdf

import (
    "fmt"
)

func Main() {
    fmt.Println("sddddddd")
}

要解决此问题,我只需要将该包命名为即可main。但是我不明白为什么我需要这样做。我应该能够随心所欲地命名包裹。

另一个问题,我知道主要功能是程序的入口点,您需要它。否则它将无法正常工作。但是我看到一些没有主要功能的代码仍然可以使用。

单击此链接,页面底部的示例未使用包main和main函数,它仍然有效。只是好奇为什么。

https://developers.google.com/appengine/docs/go/gettingstarted/usingdatastore


阅读 248

收藏
2020-07-02

共1个答案

一尘不染

您需要在app.yaml文件中指定您的应用程序访问点是什么。在这里看看。您需要指定:

application: zsdfsdf

也可以从上面的链接中看到:

“注意:在编写独立的Go程序时,我们会将这段代码放在main包中。GoApp
Engine运行时提供了一个特殊的main包,因此您应该将HTTP处理程序代码放在您选择的包中(在这种情况下,您好)。”

您所有的Go程序都需要该Main方法是正确的。但这是由Google App
Engine提供的。这就是您提供的示例起作用的原因。您的示例无法在本地运行(不适用于GAE)。

2020-07-02