1. package main
    2. import "fmt"
    3. func main() {
    4. fmt.Println(min(1, 2, 3, 0, 4, 5, 6))
    5. //定义切片的其他两种写法 此处的创建方式应该是先创建了一个数组,然后引用该数组的切片
    6. // var slice []int = []int {1,2,3,4,5}
    7. // var slice = []int {1,2,3,4,5}
    8. slice := []int{1, 2, 3, 4, 5}
    9. fmt.Println(min(-1, 0, slice...)) //调用要加 ...
    10. }
    11. func min(a, b int, args ...int) int {
    12. minValue := a
    13. // 观察 for 循环的 range形式 的用法
    14. // 使用for循环遍历切片时,每次迭代返回两个值:第一个为当前元素下标,第二个为当前元素的一份副本
    15. for i, j := range args {
    16. fmt.Println("index=", i, "value=", j)
    17. }
    18. if a > b {
    19. minValue = b
    20. }
    21. for _, j := range args {
    22. if j < minValue {
    23. minValue = j
    24. }
    25. }
    26. return minValue
    27. }
    • 上面所出现的关于 使用slice来理解 … 的行为

    下面示例:

    1. func f1(args ...string) {
    2. // 观看如何调用args 参数
    3. f2(args...)
    4. f3(args)
    5. }
    6. func f2(args ...string) {}
    7. func f3(args []string)