首页 > 其他分享 >go语言init函数与main函数的执行顺序

go语言init函数与main函数的执行顺序

时间:2024-11-09 14:19:07浏览次数:3  
标签:school 函数 fmt init func home main

package school

import "fmt"

func init() {
	fmt.Println("school包初始化了")
}

type School struct {
}

func (s *School) PrintSchool() {
	fmt.Println("我是一所学校")
}

  

package home

import "fmt"

func init() {
	fmt.Println("home包初始化了")
}

type User struct{}

func (u *User) PrintUser() {
	fmt.Println("我是一个用户")
}

  

package main

import (
	"fmt"
	"godemo/home"
	"godemo/school"
)

func main() {
	fmt.Println("main func 执行了")
	school := school.School{}
	school.PrintSchool()
	home := home.User{}
	home.PrintUser()
}

func init() {
	fmt.Println("main包初始化了")
}

  

上面图片中代码里 school包和home包 都有init(),问题:打印顺序是什么样的?

结果如下

 

一个包可以有多个init函数吗?

答案:可以

 

标签:school,函数,fmt,init,func,home,main
From: https://www.cnblogs.com/thcn/p/18536752

相关文章

  • Python内置函数1详解案例
    1.列表的最值运算描述牛牛给了牛妹一个一串无规则的数字,牛妹将其转换成列表后,使用max和min函数快速的找到了这些数字的最值,你能用Python代码实现一下吗?输入描述:输入一行多个整数,数字之间以空格间隔。输出描述:输出这些数字的zuizhi示例1输入:35691062输出:10......
  • Vue3.5新增的baseWatch让watch函数和Vue组件彻底分手
    Vue3.5版本中新增的`baseWatch`函数确实让`watch`函数与Vue组件彻底分手。这一变化的主要目的是使`watch`函数的实现与Vue组件及其生命周期解耦,从而使得`watch`函数更加灵活和独立。具体来说,`baseWatch`函数的引入使得开发者可以在不依赖Vue组件的情况下使用`watch`功能,这为......
  • python 函数基础
    python函数基础1.函数的目的2.函数的定义3.函数的声明与调用4.函数的形参与实参5.函数的返回值6.函数的参数类型6.1位置参数:6.2关键字参数:6.3默认参数:6.4可变参数:7.匿名函数8.函数的进阶应用  在编程的世界里,函数是构建程序大厦的基石。Python作为一种高级编程......
  • 【人脸伪造检测】Spatial-Phase Shallow Learning: Rethinking Face Forgery Detectio
    一、研究动机[!note]创新点:利用相位谱实现伪造检测,并且证明了卷积模型可以提取隐性特征。由于上采样是伪造模型的关键步骤,这篇论文通过相位信息检测上采样的伪影。对比之前的频率模型:F3-Net:通过离散余弦变换后的统计特征实现伪造检测二、检测模型可学习的知识点......
  • python-有关内置函数的基础知识
    Python是一种简单易学、功能强大的编程语言,具有丰富的内置函数库。本文将重点介绍Python内置函数type()、range()、eval()、round()和sum()的定义和用法。目录1.type()2.range()3.eval()4.round()5.sum()结语:练习:1.type()首先,我们来讨论type()函数。type()函数用于......
  • 进程工具类 - C#小函数类推荐
          此文记录的是进程操作的类库。/***进程工具类AustinLiu刘恒辉ProjectManagerandSoftwareDesignerE-Mail:[email protected]:http://lzhdim.cnblogs.comDate:2024-01-1515:18:00使用方法例子:foreac......
  • C++函数名后面有个const
    ‌函数名后面加const表示该函数是一个常成员函数,即该函数不会修改类的任何成员变量。‌在C++中,常成员函数通过在函数声明和定义后添加const关键字来标识。常成员函数不能修改类的任何成员变量,这保证了类的接口的稳定性。例如: classPoint{public:intGetX()const;//......
  • c++--拷贝构造函数&友元函数
    目录1.拷贝构造函数是什么2.拷贝构造函数的基本格式2.1默认拷贝构造函数(浅拷贝)2.2深拷贝(DeepCopy)2.3浅拷贝(ShallowCopy)2.3浅拷贝和深拷贝总结2.友元函数1.拷贝构造函数是什么拷贝构造函数是一个特殊的构造函数,用于在创建新对象时,用已有对象的数据来初始......
  • 相干照明衍射受限系统的点扩散函数
    一、思路        相干照明下,系统对复振幅的作用是线性的.把物面光场分布看作是无数小面元(物点,点源)的组合,每个小面元都可看作一个加权的δ函数.如果能知道物面上任一小面元的光振动通过成像系统后,在像平面上所造成的光振动分布情况,通过线性叠加,就可......
  • 学习日志007--python函数 学完再练习练
    一、函数的概念1.定义函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。2.作用函数能提高应用的模块性,和代码的重复利用率3.定义函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用......