Go语言进阶------>init()函数

news2024/11/22 6:00:16

Init()包初始化

执行优先级

  • Init()函数的执行优先级比main()函数的执行优先级要高,也就是说程序会优先执行Init()函数之后再执行main()函数.

  • 代码如下

    package main
    
    import "fmt"
    
    func init() {
    	fmt.Println("执行了Init()函数")
    }
    
    func main() {
    	fmt.Println("执行了main()函数")
    }
    
  • 输出结果

    执行了Init()函数
    执行了main()函数
    

Init()函数特点

  • 不能修改函数的名称

  • 不能有返回值

  • 程序会被自动调用,不可以被引用

  • init()可以在任意包下,而且可以重复定义多个

  • 在同一go文件下,多个init()函数的调用顺序是从上到下

  • 代码展示

    package main
    
    import "fmt"
    
    func init() {
    	fmt.Println("2.执行了Init()函数")
    }
    func init() {
    	fmt.Println("1.执行了Init()函数")
    }
    
    func main() {
    	fmt.Println("执行了main()函数")
    }
    
    
  • 结果展示

    2.执行了Init()函数
    1.执行了Init()函数
    执行了main()函数
    
  • 同一package中的不同文件,优先执行mian()函数下的Init()函数之后,将按文件名字符串进行"从小到大"排序,之后顺序调用文件中的Init()函数

  • 在这里插入图片描述- 对于不同package,如果互不依赖,按照main包中import的顺序调用其包中的init()函数
    -在这里插入图片描述

  • 对于不同package,如果存在依赖,调用顺序为最后被依赖的最先被初始化,依赖顺序例如: mian导入pkg1,pkg1导入pkg2,pkg2导入pkg3,``Init()执行顺序: pkg3 -> pkg2 ->pkg1->mian,注意避免死循环的情况,例如pkg3 -> pkg2 ->pkg1->mian->pkg3 执行顺序: pkg3 -> pkg2 ->pkg1->mian,注意避免死循环的情况,例如pkg3 -> pkg2 ->pkg1->mian->pkg3
    -在这里插入图片描述

  • 在导入包的时候在导包符号前加_(空白标记符),就可以只执行包内的Init()函数,也可以避免报错

  • 例如: "_src/a"

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1071962.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【OCR】合同上批量贴印章

一、需求 OCR算法在处理合同等文件时,会由于印章等遮挡导致文本误识别。因此在OCR预处理时,有一个很重要的步骤是“去除印章”。其中本文主要聚焦在“去除印章”任务中的数据构建步骤:“合同伪印章”的数据构建。下面直接放几张批量合成后效果…

存档&改造【04】二维码操作入口设置细节自动刷新设置后的交互式网格

因为数据库中没有数据无法查看设置效果,于是自己创建了个测试数据表,用来给demo测试 -- 二维码操作入口设置 create table JM_QR_CODE(QR_CODE_ID NUMBER generated as identity primary key,SYSTEM_ID NUMBER(20) not null,IS_ENAB…

PPT课件培训视频生成系统实现全自动化

前言 困扰全动自化的重要环节,AI语音合成功能,终于可以实现自动化流程,在此要感谢团队不懈的努力和韧性的精神! 实现原理 请参照我的文章《Craneoffice云PPT课件培训视频生成系统》 基本流程 演示视频 PPT全自动 总结 过去实…

解读大模型(LLM)的token

当人们谈论大型语言模型的大小时,参数会让我们了解神经网络的结构有多复杂,而token的大小会让我们知道有多少数据用于训练参数。 正像陆奇博士所说的那样,大型语言模型为从文本生成到问题回答的各种任务提供了令人印象深刻的能力,…

css 动态点击效果

效果图 daima <body><div></div> </body> <style>div {background-color: rgb(220, 74, 98);width: 160px;height: 60px;border-radius: 40px;transition: all 0.2s linear;}div:active {transform: scale3d(0.92, 0.92, 1);} </style>

Apache RocketMQ远程代码执行

漏洞概述 Apache RocketMQ是一个分布式消息中间件&#xff0c;专为万亿级超大规模的消息处理而设计&#xff0c;具有高吞吐量、低延迟、海量堆积、顺序收发等特点。RocketMQ 5.1.0及以下版本&#xff0c;在一定条件下&#xff0c;存在远程命令执行风险。RocketMQ的NameServer&…

如何使用 CloudQuery 对 100+ 套数据库进行安全管控?

业务挑战 A 集团信息部门发展将近 10 年&#xff0c;从最初的一个 MySQL 数据库到现在鱼龙混杂什么数据库都有&#xff0c;其中仓库部门用了 PostgreSQL 做数据底座&#xff0c;历史原因问题&#xff0c;生产系统却是使用 Oracle。基于信创的需求&#xff0c;上级领导要求试点…

CAMERALINK通信应用

简述&#xff1a; Cameralink是一个全面的视频接口&#xff0c;他可以满足以前所有的传输视频的功能&#xff0c;包括通信、配置、应答、同步、以及复位等等&#xff0c;在以前简单提过一下&#xff0c;但是没有深入研究&#xff0c;其实这个通信还是比较简单的&#xff0c;在这…

uniapp vue3 静态图片引入

方法一 从新定义路径 一定看好你图片的路径 代码 <template><div class"main">Main<img :src"getImg()" alt""></div> </template><!-- 方式一 // <script setup> // let imgName logo.png // cons…

材质、纹理、贴图的区别和关联

1、材质、纹理、贴图的概念 材质&#xff08;Material&#xff09;、纹理&#xff08;Texture&#xff09;、贴图&#xff08;Texture Map&#xff09;是计算机图形学中的三个概念&#xff0c;它们之间存在关系但也有一些区别。 材质&#xff08;Material&#xff09;是描述物…

计算机竞赛 题目:基于深度学习的中文汉字识别 - 深度学习 卷积神经网络 机器视觉 OCR

文章目录 0 简介1 数据集合2 网络构建3 模型训练4 模型性能评估5 文字预测6 最后 0 简介 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基于深度学习的中文汉字识别 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&#xff01; &a…

爬虫破解:解决CSRF-Token反爬问题 - 上海市发展和改革委员会

标题:爬虫破解:解决CSRF-Token反爬问题 - 上海市发展和改革委员会 网址:https://fgw.sh.gov.cn/fgw-interaction-front/biz/projectApproval/home MD5加密:ca7f5c978b1809d15a4b228198814253 需求文档 采集数据如下所示: 解决反爬思路 这里只提供解决思路,解决反爬,…

30 数据分析(上)(业务略写可跳)|jupyter|matplotlib

文章目录 数据科学领域概述数据如何驱动运营给企业带来价值岗位关键词说明业务的商业模式 数据指标数据指标定义及常用数据指标如何选取指标分析角度计数流量导向的工具内容导向的工具用户导向的工具业务导向的工具 数据分析方法对比分析多维分析漏斗分析留存分析总结 用户画像…

基于Java的医护人员排班系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09;有保障的售后福利 代码参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作…

Python教程——配置环境,再探IDE

文章目录 一、Python安装下载安装验证 二、第一个Python程序常见问题 三、Python解释器四、PyCharm工具安装和配置安装使用PyCharm基本使用 一、Python安装 下载 如果我们想要使用Python语言编写程序&#xff0c;我们必须下载Python安装包并配置Python环境&#xff0c;我们现…

如何防止重复提交订单?

重复提交原因 其实原因无外乎两种&#xff1a; 一种是由于用户在短时间内多次点击下单按钮&#xff0c;或浏览器刷新按钮导致。 另一种则是由于Nginx或类似于SpringCloud Gateway的网关层&#xff0c;进行超时重试造成的。 常见解决方案 方案一&#xff1a;提交订单按钮置灰 …

用Blender制作YOLO目标检测器训练数据

推荐&#xff1a;用 NSDT编辑器 快速搭建可编程3D场景 本文将介绍一种非常有吸引力的机器学习训练数据的替代方案&#xff0c;用于为给定的特定应用程序收集数据。 无论应用程序类型如何&#xff0c;这篇博文都旨在向读者展示使用 Blender 等开源资源生成合成数据&#xff08;S…

一盏茶的功夫帮你彻底搞懂JavaScript异步编程从回调地狱到async/await

&#x1f3ac; 江城开朗的豌豆&#xff1a;个人主页 &#x1f525; 个人专栏 :《 VUE 》 《 javaScript 》 ⛺️ 生活的理想&#xff0c;就是为了理想的生活 ! 目录 &#x1f4d8; 1. 引言 &#x1f4d8; 2. 使用方法 &#x1f4d8; 3. 实现原理 &#x1f4d8; 4. 写到最后…

Linux I/O多路复用 select poll epoll

简介 select函数 poll函数 epoll函数

yolov7车牌识别(12种中文车牌类型)

12种中文车牌类型&#xff1a; 1.单行蓝牌 2.单行黄牌 3.新能源车牌 4.白色警用车牌 5 教练车牌 6 武警车牌 7 双层黄牌 8 双层武警 9 使馆车牌 10 港澳牌车 11 双层农用车牌 12 民航车牌 测试demo: 以yolov7-lite-s 为例: python detect_rec_plate.py --detect_model weigh…