go语言函数使用细节,自定义数据类型,init函数,闭包,匿名函数,defer使用

1,函数使用细节

《1,函数可以有多个参数以及多个返回值(值类型,引用数据类型均可)

《2,函数命名规则与标识符规则一样,a-z大小写,0-9,和下划线,且开头不能为数字,首字母大写表示public,小写private

《3,函数内的变量是局部的对外不生效

《4,值类型都是拷贝了一份到函数中使用,不影响原来的值,如果想修改原本的值可以传递指针&变量名

《5,go语言函数不能重载

《6,go语言中函数也是一种数据类型,可以赋值调用等等

《7,可以对函数的返回值命名

我是分割线-----------------------------------------------------------------------------------------------------------------

2,自定义数据类型

语法

如下forge实际指向的是一个函数类型

type forge func(i,k int) int

那么我们再定义一个其他函数就可以这么使用

func yh() forge {
	return func(i, k int) int {
		return 3
	}
}

其他类型同理

我是分割线-----------------------------------------------------------------------------------------------------------------

3,init函数

每个.go文件都可以有一个init函数

它会在初始化全局变量,main函数之前运行

通常用来进行一些初始化

如果你引入的包中也有init函数,会先初始化引入包的init

4,匿名函数

如果你希望只使用一次那么你可以使用匿名函数

语法

var g=func() forge{
	return func(i, k int) int {
		return 6
	}
}

5,闭包结构

定义:闭包就是一个函数和与其相关的引用环境所组成的一个整体

经典例子

h:=name()
	fmt.Printf("%v\n",h())
	fmt.Printf("%v\n",h())
	fmt.Printf("%v\n",h())

fmt.Printf("%d\n",name()())
	fmt.Printf("%d\n",name()())
	fmt.Printf("%d\n",name()())

func name() func() int {
	b:=1
	fun:=func() int {
		b++
	return b
	}
return fun
}

结果

234

222

变量b会随着name函数的调用而创建

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值