Go语言中init函数与匿名函数使用浅析

 更新时间:2023年01月16日 10:20:54   作者:fiveym  
这篇文章主要介绍了Go语言中init函数与匿名函数使用浅析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧

init函数

基本介绍

每一个源文件都可以包含一个init函数,该函数会在main函数执行前,被Go运行框架调用,也就是说init会在main函数前被调用

package main
import "fmt"
//init函数,通常可以在init函数中完成初始化工作
func init() {
	fmt.Println("init()")
}
func main() {
	fmt.Println("main()")
}
/*
init()
main()
*/

注意事项和细节

1.如果一个文件同时包含全局变量定义,init函数和main函数,则执行的流程是变量定义->init函数->main函数

2.init函数最主要的作用,就是完成一些初始化的工作

案例

如果main.go和utils.go都含有变量定义init函数时,执行的流程又是怎么样的?

匿名函数

介绍

Go支持匿名函数,如果我们某个函数知识希望使用一次,可以考虑使用匿名函数,匿名函数也可以实现多次调用。

调用方式

方式1

在定义匿名函数时就直接调用,这种方式匿名函数只能调用一次

package main
import (
	"fmt"

)
func main() {
	res1 := func ( n1 int, n2 int) int {
		return n1 + n2
	}(10, 20)
	fmt.Println("res1=", res1)
}

方式2

将匿名函数赋给一个变量(函数变量),再通过变量来调用匿名函数

package main
import (
	"fmt"
)
func main() {
	//将匿名函数func (n1 int,n2 int)int赋值给a变量
	//则a的数据类型就是函数类型,此时,我们可以通过a完成调用
	a := func ( n1 int, n2 int) int {
		return n1 + n2
	}
	res1 := a(10, 20)
	fmt.Println("res1=", res1)
}

到此这篇关于Go语言中init函数与匿名函数使用浅析的文章就介绍到这了,更多相关Go init函数与匿名函数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 手把手带你走进Go语言之运算符解析

    手把手带你走进Go语言之运算符解析

    这篇文章主要介绍了手Go语言之运算符解析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • 图文详解Go程序如何编译并运行起来的

    图文详解Go程序如何编译并运行起来的

    Go语言这两年在语言排行榜上的上升势头非常猛,Go语言虽然是静态编译型语言,但是它却拥有脚本化的语法,下面这篇文章主要给大家介绍了关于Go程序如何编译并运行起来的相关资料,需要的朋友可以参考下
    2024-05-05
  • GO语言Defer用法实例分析

    GO语言Defer用法实例分析

    这篇文章主要介绍了GO语言Defer用法,实例分析了Defer的使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-02-02
  • go语言错误处理基本概念(创建返回)

    go语言错误处理基本概念(创建返回)

    这篇文章主要为大家介绍了go语言错误处理基本概念(创建返回),有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • Golang实现自己的Redis(有序集合跳表)实例探究

    Golang实现自己的Redis(有序集合跳表)实例探究

    这篇文章主要为大家介绍了Golang实现自己的Redis(有序集合跳表)实例探究,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • 6行代码快速解决golang TCP粘包问题

    6行代码快速解决golang TCP粘包问题

    在用golang开发人工客服系统的时候碰到了粘包问题,那么什么是粘包呢?下面这篇文章主要给大家介绍了关于如何通过6行代码快速解决golang TCP粘包问题的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴下面随着小编来一起学习学习吧。
    2018-03-03
  • golang操作连接数据库实现mysql事务示例

    golang操作连接数据库实现mysql事务示例

    这篇文章主要为大家介绍了golang操作连接数据库实现mysql事务示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2022-04-04
  • go build失败报方法undefined的解决过程

    go build失败报方法undefined的解决过程

    go build命令用于编译我们指定的源码文件或代码包以及它们的依赖包,下面这篇文章主要给大家介绍了关于go build失败报方法undefined的解决过程,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-11-11
  • Golang发送http GET请求的示例代码

    Golang发送http GET请求的示例代码

    这篇文章主要介绍了Golang发送http GET请求的示例代码,帮助大家更好的理解和使用golang,感兴趣的朋友可以了解下
    2020-12-12
  • Go语言的互斥锁的详细使用

    Go语言的互斥锁的详细使用

    本文主要介绍了Go语言的互斥锁的详细使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06

最新评论