go 函数
package main import "fmt" //可变长参数 func test(args... int){ for i:=0;i<len(args);i++{ fmt.Println(args[i]) } } //指针传参,可以内部变量修改外部变量,也可以减少值复制 func test2(num *int){ *num=30 } //函数也是一种数据类型,可以赋值给一个变量,赋值给变量之后调用变量就相当于调用函数 func test3(num int){ fmt.Println(num) }
//返回值重命名
func test5(num int,num2 int)(sum int,sub int){
sum=num+num2
sub=num-num2
return
}
func main(){ test() fmt.Println("--------------------") test(2,3,5) fmt.Println("--------------------") test(23,23,25,67,34) fmt.Println("--------------------") var num int=10 test2(&num) fmt.Println(num) a:=test3 fmt.Printf("a的类型是:%T, test函数的类型是:%T \n",a,test) a(100)
sum,sub:=test5(5,3)
fmt.Printf("sum 是:%d, sub 是:%d \n",sum,sub)
//匿名函数
result:=func (num1 int ,num2 int) int{
return num1+num2
}(10,90)
fmt.Printf("result 是:%d \n",result)
}
输出如下
--------------------
2
3
5
--------------------
23
23
25
67
34
--------------------
30
a的类型是:func(int), test函数的类型是:func(...int)
100
sum 是:8, sub 是:2
result 是:100