【Golang】Go语言中函数的特性

91 阅读1分钟

一、基本格式

func 函数名(参数列表)返回值类型{ 函数体 }

基本的例子:传入两个整型值,返回二者的均值

func avg(num1 int, num2 int) (int) {
    return (num1+num2)/2
}

二、特性

1、可以返回多个值,需要注明所有返回值的类型,可以不接受全部的返回值。

例如:

func swap(x, y string) (string, string) {
   return y, x
}

func main() {
   a, b := swap("xitu", "juejin")
   fmt.Println(a, b)
   a, _ := swap("none", "SOME")
   fmt.Println(a, b)
}

运行结果为:

juejin xitu
SOME

2、可变参数:函数的参数数量可变,函数内部在处理可变参数时,把传入的参数当作切片

func sum(num...int) (int) {
       result := 0
       for i:=0; i<len(num); i++{
           result += num[i]
       }
       return result
}

func main() {
   a := sum(1,2,3,4,5)
   b := sum(1)
   fmt.Println(a)
   fmt.Println(b)
}

结果为

15
1

3、不支持函数重载

4、类似c语言,可以在传入时加入&,类似引用传递,使函数的运行影响传入的变量