Closed4
goでimport cyle not allowedが発生
エラーメッセージの読み方を把握したい。
.
├── README.md
├── go.mod
├── x
│ └── x.go
├── y
│ └── y.go
└── z
└── z.go
4 directories, 5 files
ここで
$ go vet ./z/
package m/z
imports m/y
imports m/x
imports m/z: import cycle not allowed
このときのgo.mod
module m
go 1.19
importの関係は以下のようになっている
$ cat **/*.go
package x
import "m/z"
package y
import _ "m/x"
package z
import _ "m/y"
従って素直にこれは z -> y -> x と読み x package上で zをimportしたという意味になる。
$ go vet ./z/
package m/z
imports m/y
imports m/x
imports m/z: import cycle not allowed
なんかバグっている時期があった。これでハマっていた。悲しい。
このスクラップは2023/07/03にクローズされました