5.函数相关

函数的定义

func 函数名(参数1 参数1类型,参数2 参数2类型) (返回类型1,返回类型 2) {

}

1.正常定义

func sumFn1(a int,b int) int{
return a+b
}

func main(){
var sum=sumFn1(1,2) //调用函数
}

当然当返回值为空时,参数后面不写类型即可

2.接受多个未知参数

func sumFn2a ...intint{
sum:=0
for _,v:=range a{
sum+=v
}
return v
}

func main(){
var sum=sumFn2(1,2,3,5,6,4,8)
}

简单的理解就是1,2,3,…这些数据构成了一个切片a,但如果时这样的情况
func sumFn2(a int,b …int),那么a的值就是1,其余的值归为切片sliceb

3.指定返回的变量

func calc1(a int,b int) (sum int,sub int){
sum=a+b
sub=a-b
return
}

func main(){
var sum,sub=sumFn1(1,2) //调用函数
}

从代码中也是很好理解的我们指定了返回变量sum,sub,计算出他们的值后,我们直接return就行

4.参数类型为切片

func calc2(slice_a []int) []int{
sort.Ints(slice_a) //对slice_a排序
return slice_a
}
func main(){
slice_a:=[]int{1,2,5,89,4,56}
slice_a=calc1(slice_a)
}

这个也没啥好说的注意以下咋写的就行

5.参数类型为map

func calc3(map1 map[string]string) {
//记录map的key值
slice_key:=[]string{}
for k,_:= range map1{
slice_key=append(slice_key,k)
}
sort.Strings(slice_key)//对key值进行排序
for _,v:=range slice_key{
fmt.Printf("%v:%v ",slice_key,map1[slice_key])
}
}

func main(){
map1:=map[string]string{
"username": "张三",
"password": "1234",
"age": "30",
"height": "180",
"weight": "50",
}
calc3(map1)
}

//输出结果:age:30 height:180 password:1234 username:张三 weight:50