ここにシンプルなgoアプリケーションがあります。次のコードを実行すると、「実行:メイン以外のパッケージを実行できません」というエラーが表示されます。
package zsdfsdf
import (
"fmt"
)
func Main() {
fmt.Println("sddddddd")
}
修正するには、パッケージにmain。という名前を付けるだけでよいのですが、なぜそうする必要があるのかわかりません。パッケージには、好きな名前を付けることができます。
別の質問、主な機能はプログラムのエントリポイントであることを知っています、あなたはそれを必要とします。それ以外の場合は機能しません。しかし、私はメイン機能を持っていなかったいくつかのコードがまだ動作しているのを見ます。
このリンクをクリックしてください。ページの下部にある例では、パッケージのメインとメイン関数を使用していませんでしたが、引き続き機能します。好奇心が強い理由。
https://developers.google.com/appengine/docs/go/gettingstarted/usingdatastore
App.yamlファイルで、アプリのアクセスポイントを指定する必要があります。 こちら をご覧ください。以下を指定する必要があります。
application: zsdfsdf
上記のリンクからもご覧ください:
「注:スタンドアロンのGoプログラムを作成する場合、このコードをパッケージmainに配置します。GoApp Engineランタイムは特別なメインパッケージを提供するため、HTTPハンドラーコードを任意のパッケージに配置する必要があります(この場合、hello )。」
すべてのGoプログラムにMain
メソッドが必要であることは正しいです。ただし、Google App Engineによって提供されます。これが、提供された例が機能する理由です。例はローカルでは機能しません(GAEでは機能しません)。
各goプログラムのエントリポイントはmain.main
、つまりmainというパッケージ内のmainという関数。このようなメインパッケージを提供する必要があります。
ただし、GAEは例外です。 main
関数を含むmain
パッケージをプロジェクトに自動的に追加します。したがって、独自の記述は許可されていません。
メインパッケージを使用する必要があります。goで始まる一般的なエラーはtypeです
package Main
代わりに
package main
このエラーを回避する解決策は、エントリポイントsomefilename.go
ファイルをメインパッケージとして追加してpackage main
エントリポピンの最初の行として
package main
// import statements
import "fmt"
// code below