首页 > 其他 > 详细

Go 函数基础

时间:2020-05-13 09:34:46      阅读:55      评论:0      收藏:0      [点我收藏+]

函数定义

废话不多说,直接上例子:

//先定义一个求两个数之和的函数
func intSum(x int, y int) int {
    return x + y
}


//一个既不需要参数 也没有返回值的函数
func sayHello() {
    fmt.Println("Hello 沙河")
}

函数的调用

上例子:

func main() {
    sayHello()
    ret := intSum(10, 20)
    fmt.Println(ret)
}

注意: 调用有返回值的函数时,可以不接收其返回值。

参数

类型简写

函数的参数中   如果相邻变量的类型相同,则可以省略其中一个类型,例如:

func intNum(x,y int) int {
     return x + y  
}

可变参数

什么是可变参数?

可变参数是指函数的参数数量不固定。Go中的可变参数通过在参数名后加 ... 来标识。

注意:可变参数通常要作为函数的最后一个参数。

举个例子吧:

func intSum2(x ...int) int {
       fmt.Println(x)           //x是一个切片
       sum := 0
       for _. v := range x {
             sum = sum + v
       }
       return  sum
}

调用上面函数:

ret1 := intSum2()    //什么都不传
fmt.Println(ret1)           //结果: 0

ret2 := intSum2(10,20) 
fmt.Println(ret2)       //结果: 30

本质上:函数的可变参数是通过切片来实现的。

返回值

多返回值

函数如果有多个返回值时必须使用() 将所有的返回值包裹起来。

上例子:

func calc(x, y int) (int, int) {   //包裹起来
    sum := x + y
    sub := x - y
    return sum, sub
}

返回值命名

函数定义时 可以给返回值命名,并在函数体中直接使用这些变量,最后通过return 关键字返回。

例:

func calc(x, y int) (sum, sub int) {   //这里给返回值命名 sum,sub
    sum = x + y
    sub = x - y
    return        //这里直接用 return 关键字就行
}

返回值补充

当我们的一个函数返回值类型为slice时, nil可以看做是一个有效的slice,没必要显示返回一个长度为0的切片。

func someFunc(x string) []int {
    if x == "" {
        return nil // 没必要返回[]int{}
    }
    ...
}

Go 函数基础

原文:https://www.cnblogs.com/zhukaijian/p/12879958.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!