golang 中函数可以按照方法来使用,也可以当作变量来使用(返回的是一个闭包)
举例说明一下吧:
1. 传递0个或者多个参数
/**
* @desc 传递0个或者多个参数 格式为:func 函数名(变量 ...数据类型){}
**/
func allArr(arr ...int){
fmt.Println(arr)
}
func main() {
allArr(1,2,3,4,5)//测试调用
}
2. 传递1个或者多个参数
/**
* @desc 传递1个或者多个参数 格式为:func 函数名(变量 数据类型 , 变量 ...数据类型){}
**/
func allArr(strs string , arr ...int){
fmt.Println(strs ,arr)
}
func main() {
allArr("test_strs",1,2,3,4,5)//测试调用
}
3. 直接当作闭包函数
/**
*@desc 直接调用闭包函数
**/
func main() {
test := func(param int){
fmt.Println("这是一个闭包",param)
}
test(123)
}
4. 间接使用闭包
/**
*@desc 间接调用闭包函数
**/
func test() func(){
i := 0;
return func(){
i++;
fmt.Println(i)
}
}
func main() {
test := test();//测试调用
test();
}
5. defer 延迟作用的函数
/**
*@desc defer 延迟作用的函数 【 defer 函数是谁在前谁后执行的顺序 ,所在的方法执行完之后执行该函数 】
**/
func def(){
defer test("test1",1);//最后执行
defer test("test2",2);
fmt.Println("这是延迟函数哦");
}
func test(a string,arr ...int){
fmt.Println(a,arr)
}
func main() {
def();//测试调用
}
6. 捕获异常的函数
func main() {
panic("这是异常处理");
}
差不多就这些了哦!