函数
Go语言的函数,很像JavaScript语言的函数
func 函数名称 (形参1, 形参2) (返回值类型列表) {
函数体
retrun 返回值列表
}函数的声明
函数的命名
函数名也是标识符,遵循标识符的命名规范
首字母小写,只能被本包使用
首字母大写,可以被本包以及其他包使用
重载:不支持
// 以下代码会报错
// 编译器会认为下面的两个方法定义是重复的
func test() {}
func test(a string) {}无参函数
有参函数:参数类型一致
有参函数:类型不一致
有参函数:可变参数
无返回值函数
如果是无返回函数,返回值类型不填
单返回值函数
如果只有一个返回值,可以省略括号
多返回值函数
函数可以有多个返回值,多个返回值返回使用逗号隔开
带有变量名的返回值
函数的调用
调用多返回值函数
忽略多返回值函数返回值
函数参数的值传递与引用传递
基本类型形参是值传递
使用指针可以做到引用传递:
引用类型形参是引用传递
指针
切片
map
函数
channel
等数据类型。
匿名函数
定义并直接调用匿名函数
变量函数
变量函数传递
匿名函数应用技巧
闭包(Closure)
闭包就是能够读取其他函数内部变量的函数,在其他语言中,也称为Lambda表达式。在Golang中,闭包组成如下:
下面是一个闭包累加器:
结果:
defer 延迟执行语句
类似于Java的Finally语句,通常用于标记关闭资源的语句,让其使用完毕后自动关闭:
执行结果如下:
最后更新于
这有帮助吗?