go语言中import不允许循环包含

https://segmentfault.com/a/ go的包不允许循环包含,具体例子: main.go: package main import ( "fmt" "test/pkg1" ) func main() { fmt.Println("in main.main") fmt.Printf("pkg1.Black=%s\n", pkg1.Black) fmt.Printf("pkg2.Black=%s\n", pkg2.Black) } func init() { fmt.Println("in main.init") fmt.Printf("pkg1.Black=%s\n", pkg1.Black) fmt.Printf("pkg2.Black=%s\n", pkg2.Black) } pkg1.go: package pkg1 import ( "fmt" "test/pkg2" ) const ( Black string = "#000" white string = "#fff" ) func init() { fmt.Println("in pkg1.init")