LoginSignup
1
0

More than 1 year has passed since last update.

Go 循環参照ではまった

Last updated at Posted at 2018-05-23

要するに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) {
}

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0