一個package下,可以多個init
package main
import "fmt"
func init() {
fmt.Println("init囉")
}
func main() {
fmt.Println("main function")
}
// init囉
// main function
package main
import "fmt"
func init() {
fmt.Println("init囉 part1")
}
func init() {
fmt.Println("init囉 part2")
}
func main() {
fmt.Println("main function")
}
// init囉 part1
// init囉 part2
// main function
再來是測試引入其他package的init
mkdir foo
cd foo
touch foo.go
package foo
import "fmt"
func init() {
fmt.Println("init foo")
}
mkdir bar
cd bar
touch bar.go
package bar
import "fmt"
func init() {
fmt.Println("init bar")
}
再來我們主程式
package main
import (
_ "./bar" // 因為main function沒引用bar的東西,只想用它的init,就用under score
_ "./foo" // 因為main function沒引用foo的東西,只想用它的init,就用under score
"fmt"
)
func init() {
fmt.Println("init囉 part1")
}
func init() {
fmt.Println("init囉 part2")
}
func main() {
fmt.Println("main function")
}