#はじめに
今回はエラーの紹介です。
Golang 初心者の方で、packageに、こんなエラーが出た人はいるんではないでしょうか??
can't load package: import cycle not allowed
import cycle ってなんやねん?
って人向けに記事を書きます。
シンプルに関数を互いのパッケージで使わないでねって意味
成功例
例えばなんですけど
main.go
import "./a"
func main() {
a.PrintGreeting()
}
a/sample.go
package a
import (
"fmt"
"../b"
)
func PrintGreeting() {
test := b.Greeting()
fmt.Println(test)
}
b/sample.go
package b
func Greeting() string {
return "hello world"
}
っていうファイルがあって
$ go run main.go
の実行結果が
hello world
みたいになります。
失敗例
main.go
import "./a"
func main() {
a.PrintGreeting()
}
a/sample.go
package a
import (
"fmt"
"../b"
)
func PrintGreeting() {
test := b.SecondGreeting()
fmt.Println(test)
}
func FirstGreeting() string {
return "hello world"
}
b/sample.go
package b
import "../a"
func SecondGreeting() string {
return a.FirstGreeting()
}
このときに、今回のエラーが出ます!(汗)
つまりは、パッケージ内の関数を互いに呼んだときにエラーが出てるということです。(Cycleってそういう意味!)
関数を闇雲に沢山作っていくと、こういうエラーに遭遇します。
#結論
設計を大事にしてメソッドを闇雲に生やすのは辞めましょう〜
#宣伝
Qiitaの更新情報は Twitter でも共有してます!
是非フォローしてください!
それでは!