Golang函数-不定参数列表和多返回值函数

         Golang函数-不定参数列表和多返回值函数

                             作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

 

 

 

 

一.不定参函数

1>.不定参数的产生背景

  在定义函数的时候根据需求指定参数的个数和类型,但是有时候如果无法确定参数的个数,此时我们就可以通过"不定参数列表"来解决这个问题,Go语言的不定参数列表和Python中的"*args"有着异曲同工之妙。

  Go语言使用不定参数列表语法格式如下:
    func 函数名(数据集合 ...数据类型)

2>.不定参数的案例

package main

import (
    "fmt"
)

/*
    不定参函数定义:
        计算N个整形数据的和
*/
func sum(arr ...int) int {
    value := 0
    /*
        使用数组下标进行遍历
    */
    //for index := 0; index < len(arr); index++ {
    //    value += arr[index]
    //}

    /*
        使用range关键字进行范围遍历,range会从集合中返回两个数:
            第一个是对应的坐标,赋值给了匿名变量"_"
            第二个对应的是值,赋值给了变量"data"
    */
    for _, data := range arr {
        value += data
    }
    return value
}

func main() {
    /*
        我们在调用函数时可以指定函数参数的个数不尽相同。
    */
    fmt.Println(sum(1, 2, 3))
    fmt.Println(sum(1, 2, 3, 4, 5))
    fmt.Println(sum(1, 2, 3, 4, 5, 6, 7, 8, 9, 10))
}

 

二.多返回函数

package main

import (
    "fmt"
)

/*
    函数的返回值是通过函数中的return语句获得的,return后面的值也可以是一个表达式,只要返回值类型和定义的返回值列表所匹配即可。
    Go语言支持多个返回值。
*/
func test() (x int, y float64, z string) {

    return 18, 3.14, "尹正杰"
}

func main() {

    /*
        如果函数定义了多个返回值,就需要使用多个变量来接收这些返回值
        可以使用匿名变量("_")来接收不使用的变量的值,因此我们无法将匿名变量的值取出来
    */
    a, _, c := test()
    fmt.Println(a)
    fmt.Println(c)

}

 

posted @ 2020-02-12 21:26  JasonYin2020  阅读(2683)  评论(0编辑  收藏  举报