声明顺序:

  1. 在完成包的import之后,开始对常量,变量和类型的定义或声明。
  2. 如果存在init函数的话,则对函数进行定义(这是一个特殊的函数,每个含有该函数的包都会先执行这个函数)。
  3. 如果当前包是main包,则定义main函数。
  4. 然后定义其余的函数,首先是类型的方法,接着是按照main函数中先后调用的顺序来定义相关函数,如果有很多函数,则可以按照字母顺序进行排序。

执行顺序:

  1. 按顺序导入所有被main包引用的其他包,然后再每个包中执行如下②③④流程。
  2. 如果该包又导入了其他包,则从第一步开始递归执行,但是每一个包只会被导入一次。
  3. 然后以相反的顺序在每个包中初始化常量和变量,如果该包含有init函数的话,则调用该函数。
  4. 在完成这一切之后,main也执行同样的过程,最后调用main函数开始执行程序。

原文链接:https://blog.csdn.net/weixin_43897770/article/details/110150047