一个包下可以有多个 init 函数,每个文件也可以有多个 init 函数。
多个 init 函数按照它们的文件名顺序逐个初始化。
应用初始化时初始化工作的顺序是,从被导入的最深层包开始进行初始化,层层递出最后到 main 包。
不管包被导入多少次,包内的 init 函数只会执行一次。
但包级别变量的初始化先于包内 init 函数的执行。
答:像 string,int,float interface 等可以通过 reflect.DeepEqual 和等于号进行比较,像 slice,struct,map 则一般使用 reflect.DeepEqual 来检测是否相等。
不会,例如for a,b := range c , ab在内存中只会存一份,相当于是不断从c中取值赋给a,b,但是a,b的地址是不变的