当前位置: 首页 > news >正文

网站建设备案条件建站行业已死

网站建设备案条件,建站行业已死,电子商务有限公司经营范围,网站更名策划方案前言 go 语言中有一个非常神奇的函数 init ,它可以在所有程序执行开始前被执行,并且每个 package 下面可以存在多个 init 函数,我们一起来看看这个奇怪的 init 函数。 init 特性 init 函数在 main 函数之前执行,并且是自动执行&#xff1b…

前言

go 语言中有一个非常神奇的函数 init ,它可以在所有程序执行开始前被执行,并且每个 package 下面可以存在多个 init 函数,我们一起来看看这个奇怪的 init 函数。

init 特性

  • init 函数在 main 函数之前执行,并且是自动执行;
  • 每个 package 中可以存在多个 init 函数;
  • 每个 package 中的源文件也可以存在多个 init 函数;
  • init 函数没有输入参数,返回值,也没有声明,无法引用;
  • 不同的 package 中的 init 函数按照包导入的依赖关系决定执行顺序;
  • 无论包被导入多少次,init 函数只会执行一次。

init 的执行顺序

初始化顺序

这张图清晰反应了 init 函数的加载顺序:

  • 优先级最高的是 package 加载,先层层递归进行包加载
  • 每个包中的加载顺序是:const -> var -> init

变量的初始化顺序

针对变量的初始化顺序,GO 官方文档有一个例子

变量的初始化顺序

  • 这个例子的初始化顺序:d -> b -> c -> a
  • 变量的初始化顺序是按照出现的顺序进行先后加载的
  • 如果某个变量需要依赖其他变量,则被依赖的变量先初始化

package 中多个 init 的执行顺序

GO 官方文档对这个有专门的说明

  • 如果当前包下有多个 init 函数,首先按照源文件名的字典序从前往后执行
  • 若一个文件中出现多个 init 函数,则按照出现顺序从前往后进行执行

加载顺序总结

  • 从当前包开始,如果当前包 import 了多个依赖包,
  • 先加载依赖包,层层递归初始化各个包,
    • 在每一个包中,按照源文件的字典序从前往后执行,
      • 每一个源文件中, 优先初始化常量,变量,最后是 init 函数,
      • 当出现多个 init 函数时,则按照出现的顺序从前往后一次执行,
    • 每一个包都初始化完成后,递归返回
  • 初始化当前包。

init 的使用场景

  • 服务注册
  • 数据库,缓存等中间件的初始化连接

init 注意事项

  • 开发时尽量不要依赖 init 的顺序,
  • 复杂的逻辑不要使用 init 函数,
  • init 函数不能在代码中被显式调用,不能被引用,
  • 导入包不要出现循环依赖,
  • 导入包仅仅想使用这个包的 init,不使用其他方法,可以加上下划线_ ,
  • 例如:import _ "cumsuter_package",
  • init 不应依赖 main函数里面创建的变量,因为 init 先于 main 执行。
http://www.yayakq.cn/news/324317/

相关文章:

  • wordpress添加页面的代码网站怎样做有利于seo
  • 怎么搭建网站视频教程html注册页面代码
  • 网站登录窗口怎么做wordpress调用外部接口
  • 门户网站的发布特点国家企业信息查询网站
  • 陕西省住房和城乡建设厅网站首页设计官网的
  • 建设部网站证书查询wordpress 小工具 不显示不出来
  • 中国建设银行招标网站windows系统wordpress
  • 淄博网站seo公司运营网站挣钱方法
  • 北京厦门网站优化烟台网站公司
  • 想招代理去什么网站网站后台添加新闻
  • 企业网站建设需要考虑内容如何建学校网站
  • 网站 英语网站建设预期目标
  • 东原ARC网站建设公司上海在哪建设网站
  • 企业展示网站模板湖南建设科技节能协会网站
  • 比较有设计感的网站免费申请激活码
  • 长春市建设工程信息网站房源信息一般在哪里看
  • 网站检测报告哪里做wordpress付费小说
  • 什么网站都可以进入的浏览器建设网站步骤
  • 怎样注册自己的网站wordpress博客主题推荐
  • 面膜网站广告怎么做企业网站的建立不能缺少哪些细节
  • 襄阳网站seo方法网页搜索功能怎么实现
  • 广州做seo整站优化公司河南建设人才教育信息网
  • 网站备案最多需要多久沅江网站制作
  • 自学网网站小程序是什么东西
  • 企业公司官网网站公司主页是什么意思
  • 娱乐平台网站开发免费seo外包模板
  • 制作一个简单的php网站卧龙区微网站开发
  • 局域网内部如何做网站wordpress 找不到主题
  • 提供网站空间服务器学技术网站
  • 汉中做网站炉石卡牌制作网页