1. 进入main包,执行import导入操作,例如需要导入fmt包,则进入fmt包,判断fmt包依赖,进而导入依赖包;

  2. 依赖包只会被导入一次,导入依赖包之后,就会执行包常量和变量的初始化,然后执行依赖包中的init函数;

  3. main包中的依赖包都导入完成后,执行main包常量和变量的初始化,然后执行main包中的init函数,然后执行main函数

  4. 最后由main函数返回,结束Go程序执行