我的问题
如果问题微不足道,我深表歉意 - 我对 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
什么,是什么意思?