私の問題
問題が些細なものである場合はお詫び申し上げます。私は golang にかなり慣れていないため、インポートのメカニズムを理解したいと考えています。私は OSX を使用しており、単純な go プログラムはコンパイルしてうまく動作します。
swaggerエディターで自動コードジェネレーターを使用してgolangサーバーを生成しました。コードを のディレクトリに解凍したところ、結果のサーバーには次のファイルが含まれています。/tmp/main.go
package main
import (
// WARNING!
// Change this to a fully-qualified import path
// once you place this file into your project.
// For example,
//
// sw "github.com/myname/myrepo/go"
//
sw "./go"
"log"
"net/http"
)
func main() {
log.Printf("Server started")
router := sw.NewRouter()
log.Fatal(http.ListenAndServe(":8080", router))
}
コメントから予想されるようgo build main.goに、次のエラーで失敗します。
main.go:11:2:
go/default.go:3:1: expected 'IDENT', found 'import'
フォレンジック
プロジェクトのディレクトリ ツリー
/tmp/goserver/go-server-server
├── LICENSE
├── api
│ └── swagger.yaml
├── go
│ ├── README.md
│ ├── app.yaml
│ ├── default.go
│ ├── logger.go
│ └── routers.go
└── main.go
go/default.go
package
import (
"net/http"
)
type Default struct {
}
func QuestionimagePost(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/json; charset=UTF-8")
w.WriteHeader(http.StatusOK)
}
私は何を試しましたか
- go パッケージについて読む
- いくつかの github プロジェクトでパッケージ/インポートの関係を理解しようとしました
- ディレクトリ ツリーを に移動し
$GOPATH/src、インポートを に変更しましたsw "sw/go-server-server/go"。main.go:13:2: go/default.go:3:1: expected 'IDENT', found 'import'
インポートの完全修飾インポート パスとはsw何ですか? また、それはどういう意味ですか?