每天五分钟Go - 函数基础

函数在定义

Go的函数使用func来定义,返回类型支持多个值的返回

func 函数名([参数列]) [返回值类型]{
  方法执行体
}

参数列支持多个参数的声明,同一类型的函数,声明时和变量的声明一样

(a int,b int)
(a,b int)

返回值类型也同样支持多个返回类型

int
(int,int)

返回的值可以有指定的变量,以便给调用者指定返回的变量名

(a int , b int)

函数的定义如下

func eval(a,b int ,op string) int{
   ... ...
}

//给返回值定义返回变量
fund div(a,b int ) (q,r int){

}

在调用多个返回值的函数时,如果只想用到其中的一个,或部分结果时,不需要的的结果可以使用_作为返回结果的空处理
因为go语言规定,定义的变量后面必须使用,不使用的话会报错
如果调用div函数,只想要第一个返回结果,那么可以使用这样的方式

a,_=div(1,2)

可变参数列表

就是参数有确定个数的参数列表

func app(args ...int){
}

//调用
app(1,2,3,4,5)

声明函数变量

也有的地方称为匿名函数,

var add=func(a,b int) int{
    return a+b
}
add(3,4)

//如果在函数内部可以使用`:=`来声明一个函数变量
add:=func(a,b int) int{
     return a+b
}

下面是整合的

var add =func(a,b int) int{
    one:=func(c,d int) int{
        return c+d
    }
    return one(a,b)
}

从函数的定义上来看,定义的函数是没有方法名的,只有一个变量作为函数
匿名函数的形式

var add =func(a,b int) int{
    return func(c,d int) int{
        return c+d
    }(a,b)
}

猜你喜欢

转载自www.cnblogs.com/hitechr/p/10534851.html