一、基本格式
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语言,可以在传入时加入&,类似引用传递,使函数的运行影响传入的变量