Init函数和main函数

这篇具有很好参考价值的文章主要介绍了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()你会发现在执行过程中这两个不会按照你想象中的顺序执行。这两个函数官方只推荐在测试环境中使用,对于正式环境不要使用。文章来源地址https://www.toymoban.com/news/detail-702009.html

到了这里,关于Init函数和main函数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Golang(Go语言)IP地址转换函数

    String形式的IP地址和Int类型互转函数 代码 输出如下:  

    2024年02月05日
    浏览(40)
  • go 笔记 第七章 golang 的函数 func 方法

    声明函数 func 函数名(入参1 类型, 入参2 类型,… )(出参1 类型, 出参2 类型…){ 函数体,写逻辑 出参一定要全部 return, return 出参 } 函数内部不可以声明带名字的函数,可以声明匿名函数和自执行函数 函数名大写可以被其他包调用,小写私有,变量名也是一样 return 后面可以不

    2024年02月15日
    浏览(31)
  • 100天精通Golang(基础入门篇)——第15天:深入解析Go语言中函数的应用:从基础到进阶,助您精通函数编程!(进阶)

    🌷 博主 libin9iOak带您 Go to Golang Language.✨ 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍》学会IDEA常用操作,工作效率翻倍~💐 🪁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬请批

    2024年02月12日
    浏览(54)
  • 100天精通Golang(基础入门篇)——第12天:深入解析Go语言中的集合(Map)及常用函数应用

    🌷 博主 libin9iOak带您 Go to Golang Language.✨ 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍》学会IDEA常用操作,工作效率翻倍~💐 🪁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬请批

    2024年02月12日
    浏览(40)
  • go test main包报错

    先提出问题, 再说明原因. 有如下一段代码: 当执行 go test 测试时, 会报如下错误: main.test /var/folders/55/47pl3jxx6rg7m0r6xvn4f7wr0000gn/T/go-build2769402238/b001/_testmain.go:13:8: could not import main (cannot import “main”) FAIL main [build failed] 什么意思? 导入 main 包失败? Why? 经过我的测试, 有如下方法解

    2023年04月16日
    浏览(27)
  • go语言包、变量、init初始化顺序

    一个完整的 go 语言可运行程序,通常会包含引用的包、变量、init 函数以及 main 函数几个部分。 包、变量、常量、init 函数以及 main 函数初始化顺序如下图所示: 在一个 go 语言程序中,初始化顺序规则如下: 引入的包 当前包中的变量、常量 当前包的 init 函数 main 函数 初始

    2023年04月14日
    浏览(40)
  • __init__函数用法

    __init__是Python类中的一个特殊方法(special method),也称为构造函数。它在类实例化(创建对象)的过程中自动被调用,用于初始化对象的属性和执行其他必要的设置。 构造函数的完整命名是__init__(),注意它的名字中有两个前导和后缀的双下划线,这是Python中的命名约定,表

    2024年02月15日
    浏览(19)
  • __init__()函数-Python

    用Python进行面向对象编程时,通常会用到__init__ 方法(函数)。python中的__init__()方法相当于java中的构造函数,在创建一个类对象之后一定会调用的方法。 init ()方法又被称为构造器(constructor)。 所有类都有一个名为__init__()的函数, 该函数总是在类被初始化时执行 。 也可

    2024年02月12日
    浏览(23)
  • Main()函数的前世今生

             在开始分析程序之前,我们第一个要解决的问题,就是如何定位到 main函数,想要从二进制逆向的角度分析出main 函数,就必须要了解正向的代码下 main 函数的所有的细节和特 征。毕竟逆向的本质就是正向。 VS C++开发的程序在调试时总是从main或WinMain函数开始,这

    2024年02月09日
    浏览(36)
  • 深入理解main函数

      第三个参数指向环境变量  

    2024年02月07日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包