1. ホーム
  2. go

[解決済み] go run: 非メインパッケージは実行できません

2022-02-04 21:10:45

質問

ここでは、簡単なgoアプリケーションを紹介します。以下のコードを実行すると、 "go run: cannot run non-main package" というエラーが表示されます。

package zsdfsdf

import (
    "fmt"
)

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

これを解決するには、パッケージの名前を main . しかし、なぜそんなことをしなければならないのか理解できない。パッケージには好きな名前を付けることができるはずです。

もう一つの質問ですが、main関数がプログラムのエントリポイントであり、それが必要なのは知っています。しかし、main関数を持たないコードがまだ動作しているのを見たことがあります。

このリンクをクリックすると、ページの一番下にある例では、パッケージのmainとmain関数が使われていませんが、まだ動作します。

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

解決するには?

アプリのアクセスポイントを app.yaml ファイルで指定する必要があります。例えば こちら . 指定する必要があります。

application: zsdfsdf

また、その上のリンクからご覧ください。

<ブロッククオート

注:スタンドアローンの Go プログラムを書く場合、このコードを配置します。 をパッケージmainに追加しました。Go App Engine Runtime は特別な main パッケージを提供します。 パッケージの中に置く必要があります。 を選択します(この場合、hello)."。

すべてのGoプログラムには Main メソッドを使用します。しかし、それはGoogle App Engineが提供するものです。そのため、あなたが提供した例は動作します。あなたの例は、ローカルでは(GAE上ではない)動作しません。