函数学习
package main
import "fmt"
// 标准的函数写法
func work1(a int,b int) int {
return a + b
}
// 当连续的参数都是相同类型,那么可以只声明最后一个参数类型
func work2(a,b int,c,d float64) float64{
return float64(a + b) + c + d
}
//多返回值
func work3(a,b int,c,d float64) (int,float64){
return a + b ,c + d
}
// 变参函数 参数的数量不固定
func work4(nums...int) int{
fmt.Println(nums)
res := 0
for _,val := range nums{
res +=val
}
return res
}
func main(){
a := 1
b := 2
fmt.Println(work1(a,b))
c := 1.0
d := 1.1
fmt.Println(work2(a,b,c,d))
e,f := work3(a,b,c,d) //如果不关心返回的一些参数,可以用 _ 代替
fmt.Println(e,f)
/*
变参函数 不能直接传入数组
不过可以先将数组转成切片 nums -> nums[:]
然后切片转为 变参参数(在后面+...) slice -> slice...
*/
fmt.Println(work4(1))
fmt.Println(work4(1,2))
nums := [5]int{1,2,3,4,5}
s1 := []int{3,4,5}
fmt.Println(work4(nums[:]...))
fmt.Println(work4(s1...))
}