这是简单的go应用程序。如果运行以下代码,则会出现“运行:无法运行非主程序包”错误。
package zsdfsdf import ( "fmt" ) func Main() { fmt.Println("sddddddd") }
要解决此问题,我只需要将该包命名为即可main。但是我不明白为什么我需要这样做。我应该能够随心所欲地命名包裹。
main
另一个问题,我知道主要功能是程序的入口点,您需要它。否则它将无法正常工作。但是我看到一些没有主要功能的代码仍然可以使用。
单击此链接,页面底部的示例未使用包main和main函数,它仍然有效。只是好奇为什么。
https://developers.google.com/appengine/docs/go/gettingstarted/usingdatastore
您需要在app.yaml文件中指定您的应用程序访问点是什么。在这里看看。您需要指定:
application: zsdfsdf
也可以从上面的链接中看到:
“注意:在编写独立的Go程序时,我们会将这段代码放在main包中。GoApp Engine运行时提供了一个特殊的main包,因此您应该将HTTP处理程序代码放在您选择的包中(在这种情况下,您好)。”
您所有的Go程序都需要该Main方法是正确的。但这是由Google App Engine提供的。这就是您提供的示例起作用的原因。您的示例无法在本地运行(不适用于GAE)。
Main