众所周知,Go语言是严格类型语言,而开发的时候又遇到传入参数不定的情况,怎么办?

这里的三个点(…),就给我们编程人员带来很大的灵活性,具体如下

在Golang中,三个点一共会用在四个地方(话说三个点的官方说法是什么?):

代码如下:

package main

import (
	"fmt"
	"log"
)

func main() {
	//multiParam 可以接受可变数量的参数

	names := []string{"jerry", "herry"}

	//在数组文字中,...符号指定的长度等于文字中元素的数量。
	stooges := [...]string{"Moe", "Larry", "Curly"}
	stoogxs := []string{"Moe", "Larry", "Curly"}

	strParam("jerry", "herry")
	strParam(names...)

	//通过append合并两个slice
	stoogxs = append(stoogxs, names...)
	fmt.Println(stoogxs)

	//标识数组元素个数,这里,...意味着数组的元素个数
	log.Println(len(stooges))

	nums := []int{4, 5, 6}
	stoogns := [...]int{4, 5, 6}

	intParam(1, 2, 3)
	intParam(nums...)

	//标识数组元素个数,这里,...意味着数组的元素个数
	log.Println(len(stoogns))
}

func strParam(args ...string) {
	//接受的参数放在args数组中
	for _, e := range args {
		log.Println(e)
	}
}

func intParam(args ...int) {
	res := 0
	for _, n := range args {
		res += n
	}
	log.Println(res)

}
10-01 16:41