6

3.3 Go语言中的main函数和init函数

 2 years ago
source link: https://sunqi.site/posts/old-sun-learning-go-notes-3-3/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

main函数

其实从之前的示例中我们已经发现,所有的例子都包含main函数,这也是Go语言中较为特殊的函数。

  • 执行的入口函数为main()
  • 不接受参数,也不返回参数
  • 不需要显示调用
  • 每个包都必须要包含单个main包和main()函数

由于使用了很多次,这里就不再举例说明了。

init函数

除了main函数,还有一个特殊的函数叫init,简单理解就是在main函数之前执行,由于我自己阅读Go代码有限,对应用场景还没很直观的认识,所以后续可能还需要加深理解后,再进行讲解,大家也可以参考一下参考文档中的两篇来加深理解,我直接用一个例子来进行说明。

package main

import "fmt"

func init() {
    fmt.Println("First init called.")
}

func init() {
    fmt.Println("Second init called.")
}

func init() {
    fmt.Println("Third init called.")
}

func main() {
    fmt.Println("Main function called")
}

执行结果如下,有以下值得注意的点:

  • init在main之前执行
  • 可以定义多个init()
  • init()按照顺序执行
First init called.
Second init called.
Third init called.
Main function called

Recommend

  • 40
    • studygolang.com 6 years ago
    • Cache

    Go 中的 init 函数

    main 标识符是随处可见的,每一个 Go 程序都是从一个叫 main 的包中的 main 函数开始的,当 main 函数返回时,程序执行结束。 init 函数也扮演着特殊的角色,接下来我们将描述下 init 函数的属性并介绍下怎么使用它们。 init 函...

  • 36
    • studygolang.com 6 years ago
    • Cache

    init()函数

    init()函数优先于main()函数执行 每个源文件都可以包含一个init函数,这个init函数自动被go运行框架调用,执行的优先级最高。 让我们做一个代码来验证一下: ·目录结构: |-example2 |-initInfo...

  • 43

    Go中指针的特点: 1)指针是一个代表着某个内存地址的值。 2)这个内存地址往往是在内存中存储的另一个变量的值的起始位置。 3)Go 语言对指针的支持介于 Java 语言...

  • 31
    • 微信 mp.weixin.qq.com 6 years ago
    • Cache

    round 函数在不同语言中的实现乱象

  • 43
    • www.tuicool.com 5 years ago
    • Cache

    Go中的init函数

    我们知道Go程序的入口是main函数,当main函数退出了,程序也就退出了。init函数在Go程序中也扮演着重要的角色。这篇文章将会介绍init函数的特性以及如何使用它们。 init函数的作用: 变量初始化...

  • 39
    • blog.huangz.me 4 years ago
    • Cache

    在 Go 语言中定义函数

    到目前为止, 本书中的代码都放在了 main 函数里面, 但是在处理诸如环境监测程序等更为大型的程序时, 把问题拆分成更小的部分将会非常有用。 使用多个不同的函数组织代码能够令代码更易于理解、复用和维护。...

  • 9
    • www.christoolivier.com 4 years ago
    • Cache

    What's up with __init__.py and __main__.py ?

    I have noticed that a lot of articles that show how to create a python application uses __init__.py in the root folder of the application. Some also use __main__.py in addition to the actual python script that is exe...

  • 7

    在Go语言中,init()函数是一种特殊的函数,用于在程序启动时自动执行一次。它的存在为我们提供了一种机制,可以在程序启动时进行一些必要的初始化操作,为程序的正常运行做好准备。 在这篇文章中,我们将详细探讨init()函数的特点...

  • 11
    • zhangyiming748.github.io 1 year ago
    • Cache

    golang init 函数运行顺序

    golang init 函数运行顺序 2023-11-23 Golang ...

  • 8
    • zhangyiming748.github.io 1 year ago
    • Cache

    golang 中在init之前运行的函数

    golang 中在init之前运行的函数 2023-11-23 Golang ...

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK