go语言基础之不定参数的传递

1、不定参数的传递

示例1:

package main //必须有一个main包

import "fmt"

func myfunc(tmp ...int) {
        for _, data := range tmp {
                fmt.Println("data = ", data)
        }

}

func test(args ...int) {
        myfunc(args...)

}

func main() {
        test(1, 2, 3, 4)
}

执行结果:

data =  1
data =  2
data =  3
data =  4

示例2:

package main //必须有一个main包

import "fmt"

func myfunc2(tmp ...int) {
        for _, data := range tmp {
                fmt.Println("data = ", data)
        }

}

func test(args ...int) {
        // myfunc2(args[:2]...)  //args[0]~args[2](不包括数字args[2]),传递过去
        myfunc2(args[2:]...)     //从args[2]开始(包括本身),把后面所有元素传递过去

}

func main() {
        test(1, 2, 3, 4)
}

执行结果:

data =  1   //args[:2]
data =  2
-----------------
data =  3   //args[2:]
data =  4