且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

learn go passing variable-length arguments

更新时间:2022-08-12 21:16:31

package main

// 参考文档:
//     https://github.com/Unknwon/the-way-to-go_ZH_CN/blob/master/eBook/06.3.md

import "fmt"

func main() {
    x := min(1, 3, 2, 0)
    fmt.Printf("The mininum is: %d\n", x)

    // 参数被存储在一个数组 arr 中,则可以通过 arr... 的形式来传递参数调用变参函数。
    arr := []int{7, 9, 3, 5, 1}
    x = min(arr...)
    fmt.Printf("The mininum in the arr is: %d\n", x)
}

func min(a ...int) int {
    if len(a) == 0 {
        return 0
    }

    min := a[0]
    for _, v := range a {
        if v < min {
            min = v
        }
    }
    return min
}