Init函数和main函数
1.Init函数和main函数
1.1. init函数
go语言中init函数用于包(package)的初始化,该函数是go语言的一个重要特性。
有下面的特征:
1 init函数是用于程序执行前做包的初始化的函数,比如初始化包里的变量等2 每个包可以拥有多个init函数3 包的每个源文件也可以拥有多个init函数4 同一个包中多个init函数的执行顺序go语言没有明确的定义(说明)5 不同包的init函数按照包导入的依赖关系决定该初始化函数的执行顺序6 init函数不能被其他函数调用,而是在main函数执行之前,自动被调用
1.2. main函数
Go语言程序的默认入口函数(主函数):func main()函数体用{}一对括号包裹。func main(){//函数体}
1.3. init函数和main函数的异同
相同点:两个函数在定义时不能有任何的参数和返回值,且Go程序自动调用。不同点:init可以应用于任意包中,且可以重复定义多个。main函数只能用于main包中,且只能定义一个。
两个函数的执行顺序:
对同一个go文件的init()调用顺序是从上到下的。
对同一个package中不同文件是按文件名字符串比较“从小到大”顺序调用各文件中的init()函数。
对于不同的package,如果不相互依赖的话,按照main包中"先import的后调用"的顺序调用其包中的init(),如果package存在依赖,则先调用最早被依赖的package中的init(),最后调用main函数。
如果init函数中使用了println()或者print()你会发现在执行过程中这两个不会按照你想象中的顺序执行。这两个函数官方只推荐在测试环境中使用,对于正式环境不要使用。
相关文章:
Init函数和main函数
1.Init函数和main函数 1.1. init函数 go语言中init函数用于包(package)的初始化,该函数是go语言的一个重要特性。 有下面的特征: 1 init函数是用于程序执行前做包的初始化的函数,比如初始化包里的变量等2 每个包可以拥有多个init函数3 包的…...
汇川PLC学习Day1:跑马灯程序编写
汇川PLC学习Day1:跑马灯程序编写 一、 软件安装 进入官网下载软件 二、 使用帮助 三、 新建工程与功能代码实现 CtrlN 寻找内带输出模块的CPU并设置好工程名字与保存路径,语言选择想熟悉的类型 工程建立后,PLC_PRG即为用户编写程序文件…...
【已解决】Unknown initial character set index ‘45‘ received from server
出现这个数据库连接异常,可能是数据库太新,所以更新一下JDBC连接驱动,原来的是5.0.4 ,现在换成5.1.47.连接成功。 参考其他博主的文章:Java——连接数据库MySQL 5.7和8.0的区别_这段语句mysql5.7和8.0有什么区别url: …...
Java从入门到精通-数组(二)
4.数组的基本操作 数组的基本操作包括遍历数组、填充替换数组元素、对数组进行排序、复制数组以及查询数组中的元素。 • 4.1 遍历数组 遍历数组是访问数组中所有元素的过程,通常使用循环完成。 使用 for 循环遍历数组: int[] numbers {1, 2, 3, 4…...
深入剖析HTTP和HTTPS代理在爬虫中的应用价值
在当今信息时代,数据是无处不在且极其宝贵的资源。对于从互联网上获取大量结构化或非结构化数据的需求而言,网络爬虫成为一种强有力的工具。然而,在实际操作过程中,我们常常会面临许多挑战和限制。 其中一个主要问题就是目标网…...
SQL语句分类及编写规范
目录 1.SQL分类 数据定义语言 DDL 数据操纵语言 DML 数据查询语言 DQL 数据控制语言 DCL 事务控制语言 TCL 2.SQL语句的编写规范 SQL语句不区分大小写 SQL语句关键词建议大写 SQL语句每句话用分号结尾 MySQL从小白到总裁完整教程目录:https://blog.csdn.net/wei…...
02-zookeeper分布式锁案例
1 Zookeeper分布式案例 1.1 Zookeeper分布式锁原理 核心思想:当客户端要获取锁,则创建节点,使用完锁,则删除该节点。 当我们假设根节点/ 下有/locks节点时 1)客户端获取锁时,在locks节点下创建临时顺序…...
【Spring传播机制底层原理】
一、Spring的事务传播机制 Spring的事务传播机制是Spring框架中最核心的机制之一,它能够灵活地控制多个事务方法的执行顺序、提交或回滚等行为。在Spring中,事务是通过TxManager来管理的,TxManager是一个接口,提供了开启、提交、…...
python通过tkinter制作词云图工具
一、基本功能 1.采取上传文本文档(仅支持.txt格式)的方式统计词频 2.背景图形样式可选择已经设定好的,也可选择本地上传的(支持.png .jpg .jpeg格式) 3.本地上传的图片需要进行抠图处理,并将抠图结果保存…...
Java-钉钉订阅事件
文章目录 背景什么是钉钉订阅事件钉钉订阅事件的应用场景 整体思路查看钉钉文档 什么是钉钉回调钉钉回调具体实操创建自己的应用钉钉回调开发过程中遇到的问题 总结 背景 最近需要做一个业务:钉钉组织架构下添加人员之后,要对该人员的数据信息做一个处理…...
【DataV/echarts】vue中使用,修改地图和鼠标点击部分的背景色
引入:使用 DataV 引入地图的教程是参考别人的,主要介绍修改地图相关的样式; 引入地图 是参考别人的,这里自己再整理一遍,注意需要安装 5 版本以上的 echarts; DataV 网址:https://datav.aliyun.…...
系统设计类题目汇总四
25 十个异步入库任务,如何保证他们原子入库? 了解了你的问题背景,确保10个异步入库任务原子性执行(即要么全部成功,要么全部失败)有以下几种方法: 数据库事务: 如果所有的入库操作都是在同一个…...
【C++心愿便利店】No.5---构造函数和析构函数
文章目录 前言一、类的6个默认成员函数二、构造函数三、析构函数 前言 👧个人主页:小沈YO. 😚小编介绍:欢迎来到我的乱七八糟小星球🌝 📋专栏:C 心愿便利店 🔑本章内容:类…...
微软研究院团队获得首届AI药物研发算法大赛总冠军
编者按:AI 药物研发是人工智能未来应用的重要方向之一。自新冠病毒(SARS-CoV-2)首次爆发以来,新冠病毒的小分子药物研发备受关注,于近期举行的首届 AI 药物研发算法大赛便聚焦于此。在比赛中,来自微软研究院…...
redis实战篇之导入黑马点评项目
1. 搭建黑马点评项目 链接:https://pan.baidu.com/s/1Q0AAlb4jM-5Fc0H_RYUX-A?pwd6666 提取码:6666 1.1 首先,导入SQL文件 其中的表有: tb_user:用户表 tb_user_info:用户详情表 tb_shop:商户…...
【C++】详解红黑树并模拟实现
前言: 上篇文章我们一起学习了AVL树比模拟实现,我们发现AVL树成功地把时间复杂度降低到了O(logN)。但是同时我们不难发现一个问题,在构建AVL树中我们也付出了不小的代价,频繁的旋转操作导致效率变低。为了解决这个问题,…...
Matlab图像处理-最大类间方差阈值选择法(Otsu)
基本思想 最大类间方差阈值选择法又称为Otsu 算法,该算法是在灰度直方图的基础上用最小二乘法原理推导出来的,具有统计意义上的最佳分割阈值。它的基本原理是以最佳阈值将图像的灰度直方图分割成两部分,使两部分之间的方差取得最大值&#x…...
Spring Cloud(Finchley版本)系列教程(三) 服务消费者(Feign)
Spring Cloud(Finchley版本)系列教程(三) 服务消费者(Feign) 一、Feign和OpenFeign的对比 Feign是Netflix公司写的,是SpringCloud组件中的一个轻量级RESTful的HTTP服务客户端,是SpringCloud中的第一代负载均衡客户端。OpenFeign是SpringCloud自己研发的,在Feign的基础上支…...
AI图片生成 discord 使用midjourney
参考: 不用找咒语了!Midjourney图生文功能特征解析,玩转Describe命令,快速搞定AI绘画_哔哩哔哩_bilibili 1 登录 discord 2 点发现 找 midjourney 3 创建 服务器 -> 亲自创建 4 选 仅供我和我的朋友使用 5 起个 服务器名字 6 加bot 由于…...
gitlab 点击Integrations出现500错误
背景:在新服务器重新搭建了gitlab,并导入原来gitlab的备份,在项目中点击点击Integrations出现500错误。 解决方法:1.进入新服务器,将 /etc/gitlab/gitlab-secrets.json重命名为 /etc/gitlab/gitlab-secrets.json.bak …...
调用支付宝接口响应40004 SYSTEM_ERROR问题排查
在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...
2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...
PL0语法,分析器实现!
简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...
C# SqlSugar:依赖注入与仓储模式实践
C# SqlSugar:依赖注入与仓储模式实践 在 C# 的应用开发中,数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护,许多开发者会选择成熟的 ORM(对象关系映射)框架,SqlSugar 就是其中备受…...
Android15默认授权浮窗权限
我们经常有那种需求,客户需要定制的apk集成在ROM中,并且默认授予其【显示在其他应用的上层】权限,也就是我们常说的浮窗权限,那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南 在数字化营销时代,邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天,我们将深入解析邮件打开率、网站可用性、页面参与时…...
C#中的CLR属性、依赖属性与附加属性
CLR属性的主要特征 封装性: 隐藏字段的实现细节 提供对字段的受控访问 访问控制: 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性: 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑: 可以…...
NPOI Excel用OLE对象的形式插入文件附件以及插入图片
static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...
python爬虫——气象数据爬取
一、导入库与全局配置 python 运行 import json import datetime import time import requests from sqlalchemy import create_engine import csv import pandas as pd作用: 引入数据解析、网络请求、时间处理、数据库操作等所需库。requests:发送 …...
协议转换利器,profinet转ethercat网关的两大派系,各有千秋
随着工业以太网的发展,其高效、便捷、协议开放、易于冗余等诸多优点,被越来越多的工业现场所采用。西门子SIMATIC S7-1200/1500系列PLC集成有Profinet接口,具有实时性、开放性,使用TCP/IP和IT标准,符合基于工业以太网的…...
