Posted at

Golang 循環参照 ではまった

More than 1 year has passed since last update.

https://www.slideshare.net/pospome/ss-69946057

要するにpakageAがpakageBをみてpakageBがpakageAを見ると循環参照になりコンパイルエラーになる。

これでテストコードを書くときにハマった。


package logic

import (
"###/logic"
)

func AAA() {

}


pakage logic_test
import (
"###/logic"
)

func TestAAA (t *testing.T) {
}

↑は動く

package logic

import (
"###/logic"
)

func AAA() {

}

パッケージを同じにしよう。

importの###/logicは 必要ないから _ で握りつぶして…


pakage logic
import (
_ "###/logic"
)

func TestAAA (t *testing.T) {
}

循環参照です!!

_って握りつぶしているだけで、import自体は行っているため、循環参照となるよう。

コメントアウトするか、importするパッケージを消す。

単純なことだが、結構ハマった。

↓正しい形


pakage logic
import (
// "###/logic"
)

func TestAAA (t *testing.T) {
}