Chinaunix首页 | 论坛 | 博客
  • 博客访问: 903116
  • 博文数量: 354
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 3730
  • 用 户 组: 普通用户
  • 注册时间: 2017-08-21 18:43
文章分类

全部博文(354)

文章存档

2019年(126)

2018年(223)

2017年(5)

我的朋友

分类: Web开发

2018-10-19 15:19:29

随着技术的发展,go语言逐步的进入了市场,有很多IT技术人员想要了解go语言,有很多公司已经开始使用go语言来实现一些功能。如果你在学习go语言,那么go语言的特殊函数main和init有什么异同点呢?

相同点:
两个函数在定义时不能有任何的参数和返回值,且Go程序自动调用。

不同点:
init函数可以应用于任意包中,且可以重复定义多个。
main函数只能用于main包中,且只能定义一个。

两个函数的执行顺序

对同一个go文件的init()调用顺序是从上到下的。

对同一个package中不同文件是按文件名字符串比较“从小到大”顺序调用各文件中的init()函数。

对于不同的package,如果不相互依赖的话,按照main包中"先import的后调用"的顺序调用其包中的init(),如果package存在依赖,则先调用最早被依赖的package中的init(),最后调用main函数。

如果init函数中使用了println()或者print()你会发现在执行过程中这两个不会按照你想象中的顺序执行。这两个函数官方只推荐在测试环境中使用,对于正式环境不要使用。

阅读(1919) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~