golang的函数

1、函数定义及调用

格式
func function_name( [parameter list] ) [return_types] {
        函数体
}
 

定义解析

  • func: func 声明一个函数
  • function_name:函数名称,函数名和参数列表一起构成了函数的签名
  • parameter list:参数列表。参数列表指定的是参数类型、顺序、及参数个数。参数可选,函数可以不包含参数
  • return_types:返回类型,函数返回一列值。return_types 是该列值的数据类型。有些功能不需要返回值,这种情况下 return_types 不是必须的
  • 函数体:写处理逻辑的地方

测试:下面函数传入两个整型参数 num1 和 num2,并返回这两个参数的最小值

func min(num1, num2 int) int {
    if num1 < num2 {
        return num1
    } else {
        return num2
    }
}
 
func main()  {
    fmt.Println(min(1,2))  //函数调用
}

在这里插入图片描述
 
2、函数支持多个返回值

func vals() (int, int, string) {
    return 8, 6, "zhang"
}
 
func main() {
    a, b, c := vals()
    fmt.Println(a)
    fmt.Println(b)
    fmt.Println(c)
 
    _, _, e := vals()
    fmt.Println(e)
 
    // s := make([]int, 3)
    // s = vals()  //报错: assignment mismatch: 1 variable but vals returns 3 values
}

在这里插入图片描述
分析:
(int, int) 在这个函数中标志着这个函数返回 2 个 int。

可以通过 多赋值 操作使用不同的返回值,如果仅需要返回值的一部分,可使用空白标识符 _ 替代。

不能用容器对象接收多返回值。只能用多个变量,或 “_” 忽略。
 
 
3、变参函数
golang中,函数的参数个数可以是不固定的,在参数赋值时可以不用一个一个的赋值,可直接传递一个数组或切片,注意的是要在参数后加上“…”即可。

func myfunc(args ...int) {    //0个或多个参数
}
 
func myfunc(a int, args ...int) int {    //1个或多个参数
}
 
func myfunc(a int, b int, args ...int) int {    //2个或多个参数
}

注意:其中args是一个slice,可以通过 arg[index] 访问所有参数,通过len(arg)来判断传递参数的个数。
 

func sum(s string, nums ...int) {
    total := 0
    for _, num := range nums {
        total += num
    }
    fmt.Printf(s, total)
}
 
func main() {
    sum("sum1: %d", 1, 2, 3)
    fmt.Printf("\n")
    nums := []int{1, 2, 3, 4}
    sum("sum2: %d", nums...)       //使用 slice 对象做变参时,必须展开。(slice...)
}

结果:
在这里插入图片描述
 
 
 
 

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值