package schoolimport "fmt"func init() {fmt.Println("school包初始化了") }type School struct { }func (s *School) PrintSchool() {fmt.Println("我是一所学校") }
package homeimport "fmt"func init() {fmt.Println("home包初始化了") }type User struct{}func (u *User) PrintUser() {fmt.Println("我是一个用户") }
package mainimport ("fmt""godemo/home""godemo/school" )func main() {fmt.Println("main func 执行了")school := school.School{}school.PrintSchool()home := home.User{}home.PrintUser() }func init() {fmt.Println("main包初始化了") }
上面图片中代码里 school包和home包 都有init(),问题:打印顺序是什么样的?
结果如下
一个包可以有多个init函数吗?
答案:可以