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

品牌建设计划书重庆网站建设推广优化

品牌建设计划书,重庆网站建设推广优化,百度市场应用官方app,大丰做网站价格入口函数与包初始化:搞清 Go 程序的执行次序 main.main 函数:Go 应用的入口函数 Go 语言中有一个特殊的函数:main 包中的 main 函数,也就是 main.main,它是所有 Go 可执行程序的用户层执行逻辑的入口函数。 Go 程序在…

入口函数与包初始化:搞清 Go 程序的执行次序

main.main 函数:Go 应用的入口函数

  • Go 语言中有一个特殊的函数:main 包中的 main 函数,也就是 main.main,它是所有 Go 可执行程序的用户层执行逻辑的入口函数。
    • Go 程序在用户层面的执行逻辑,会在这个函数内按照它的调用顺序展开。
    • main 函数的函数原型非常简单,没有参数也没有返回值。
    • Go 语言要求:可执行程序的 main 包必须定义 main 函数,否则 Go 编译器会报错。在启动了多个 Goroutine 的 Go 应用中,main.main 函数将在 Go 应用的主 Goroutine 中执行。
    • 不过对于 main 包的 main 函数来说,还需要明确一点,就是它虽然是用户层逻辑的入口函数,但它却不一定是用户层第一个被执行的函数。

init 函数:Go 包的初始化函数

  • Go 语言还有一个特殊函数,它就是用于进行包初始化的 init 函数了。和 main.main 函数一样,init 函数也是一个无参数无返回值的函数。
  • 如果 main 包依赖的包中定义了 init 函数,或者是 main 包自身定义了 init 函数,那么 Go 程序在这个包初始化的时候,就会自动调用它的 init 函数,因此这些 init 函数的执行就都会发生在 main 函数之前。
    • 在初始化 Go 包时,Go 会按照一定的次序,逐一、顺序地调用这个包的 init 函数。
    • 一般来说,先传递给 Go 编译器的源文件中的 init 函数,会先被执行;而同一个源文件中的多个 init 函数,会按声明顺序依次执行。
    • 当我们要在 main.main 函数执行之前,执行一些函数或语句的时候,我们只需要将它放入 init 函数中就可以了。

Go 包的初始化次序

  • Go 包是程序逻辑封装的基本单元,每个包都可以理解为是一个“自治”的、封装良好的、对外部暴露有限接口的基本单元。
    • 一个 Go 程序就是由一组包组成的,程序的初始化就是这些包的初始化。
    • 每个 Go 包还会有自己的依赖包、常量、变量、init 函数(其中 main 包有 main 函数)等。
    • 我们在阅读和理解代码的时候,需要知道这些元素在在程序初始化过程中的初始化顺序,这样便于我们确定在某一行代码处这些元素的当前状态。
  • Go 在进行包初始化的过程中,会采用“深度优先”的原则,递归初始化各个包的依赖包。
  • Go 会按照“常量 -> 变量 -> init 函数”的顺序进行初始化,执行完这些初始化工作后才正式进入程序的函数。包内的多个 init 函数按出现次序进行自动调用。

init 函数的用途

  • init 函数的第一个常用用途:重置包级变量值。init 函数就好比 Go 包真正投入使用之前唯一的“质检员”,负责对包内部以及暴露到外部的包级数据(主要是包级变量)的初始状态进行检查。
  • init 函数的第二个常用用途,是实现对包级变量的复杂初始化。
  • init 函数的第三个常用用途:在 init 函数中实现“注册模式”。通过在 init 函数中注册自己的实现的模式,就有效降低了 Go 包对外的直接暴露。
http://www.yayakq.cn/news/577483/

相关文章:

  • 制作logo的网站企业网站 设计
  • 信息管理系统网站模板软件开发实例
  • wordpress网站定时更新没有发布个人注册域名可以做网站么
  • 如何制作班级网站海口网站建设网站制作
  • 网站快速优化排名排名网站推广策略包括哪些内容
  • 视频分享网站怎么做的网站seo诊断方案
  • 深圳知名网站设计公司淡水网络公司做网站
  • 光环时讯网站wordpress怎么添加手机验证码
  • 学校后勤网站建设的作用室内装饰设计网站
  • 网站开发美学 2.0网站地址栏小图标
  • 百度搜索量排名代做网站优化
  • 网站建设 中企动力南通wordpress 企业主题餐饮
  • 地产网站开发公司有哪些是用到了网站推广
  • 广州网站维护制作双峰网站建设
  • 网站建设软件设施wordpress 将插件整合到主题
  • 毕业设计商城网站开发免费空间asp网站
  • 珠海门户网站建设哪家专业健康码哪家公司开发的
  • 乔拓云在线设计网站最有效的100个营销方法
  • 广州做网站多少钱网络维护实践报告3000
  • 北京网站建设熊掌号专业网站开发报价
  • 备案图标怎么放在网站中漂亮的设计类图片网站
  • 网站建设公司的企业特色有哪些wordpress怎么卸载主题
  • 阿里云做网站选择服务器国外电商平台排名
  • 企业品牌网站建设多少钱北京已经开始二次感染了
  • 重庆网站推广外包企业青岛网页设计公司哪个最好
  • 无障碍浏览网站怎么做网站找谁备案
  • 在湖南建设人力资源网站东莞软件网站推广
  • 怎么做网站推广的论文腾讯网站开发语言
  • 南宁网站建设云尚网络外贸网络整合营销推广方案
  • 网站开发实用技术第2版wordpress 页面分类