package Series
import "fmt"
func init() {
fmt.Println("init1")
}
func init() {
fmt.Println("init2")
}
func Square(n int) int {
return n * n
}
func GetFibonacciSerie(n int) []int {
ret := []int{1, 1}
for i := 2; i < n; i++ {
ret = append(ret, ret[i-2]+ret[i-1])
}
return ret
}
1. 在main被执行前,所有依赖的package的init方法都会被执行(类似与Java中的代码块)
2. 不同包的init函数按照包导入的依赖关系决定执行顺序·
3. 每个包可以有多个init函数,多个init函数依次执行。
4. 包的每个源文件也可以有多个init函数,这点比较特殊