qin*_*126 43 google-app-engine go
这里是简单的应用程序.如果我运行以下代码,我得到"运行:无法运行非主程序包"错误.
package zsdfsdf
import (
"fmt"
)
func Main() {
fmt.Println("sddddddd")
}
Run Code Online (Sandbox Code Playgroud)
修复它,我只需要将包命名为main.但我不明白为什么我需要这样做.我应该可以随心所欲地命名包装.
另一个问题,我知道主要功能是程序的切入点,你需要它.否则它将无法工作.但我看到一些没有主要功能的代码仍然有效.
点击此链接,页面底部的示例没有使用包main和main函数,它仍然有效.只是好奇为什么.
https://developers.google.com/appengine/docs/go/gettingstarted/usingdatastore
tux*_*21b 28
每个go程序的入口点main.main,即名为main的包中称为main的函数.你必须提供这样一个主要的包.
GAE是一个例外.他们添加一个main包,main自动包含该功能到您的项目.因此,您不能自己编写.
Pab*_*rra 14
你需要使用主包,一个以go开头的常见错误是type
package Main
Run Code Online (Sandbox Code Playgroud)
代替
package main
Run Code Online (Sandbox Code Playgroud)
您需要在app.yaml文件中指定您的应用访问点是什么.看看这里.您需要指定:
application: zsdfsdf
Run Code Online (Sandbox Code Playgroud)
从上面的链接也看到:
"注意:在编写独立的Go程序时,我们会将此代码放在包main中.Go App Engine Runtime提供了一个特殊的主包,因此您应该将HTTP处理程序代码放在您选择的包中(在本例中为hello) )".
你是对的,所有Go程序都需要这个Main方法.但它由Google App Engine提供.这就是您提供的示例有效的原因.您的示例不适用于本地(不适用于GAE).
避免此错误的解决方案是somefilename.go通过添加package main作为入口点的第一行来将入口点文件定义为主包
package main
// import statements
import "fmt"
// code below
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
37776 次 |
| 最近记录: |