码迷,mamicode.com
首页 > 其他好文 > 详细

Golang--不定参数类型

时间:2018-12-20 14:30:57      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:表示   ase   结果   ola   ace   false   个数   class   def   

1、不定参数类型

不定参数是指函数传入的参数个数为不定数量。

package main

import (
	"fmt"
)


//不定参数函数
func Add(a int, args ...int) (result int) {
	result += a
	for _, arg := range args {
		result += arg
	}
	return
}

func main() {
	fmt.Println(Add(1, 2, 3, 4, 5, 6, 7, 8, 9, 10))
}

代码中的args是一个数组切片,而且只能放在参数中的最后面。

2、不定参数的传递

package main

import (
	"fmt"
)

//不定参数函数
func Add(a int, args ...int) (result int) {
	result += a
	for _, arg := range args {
		result += arg
	}
	return
}

func SetData(args ...int) (result int) {
	//不定参数的传递
	return Add(1, args...)
}

func main() {
	fmt.Println(SetData(1, 2, 3)) //输出7
	array := []int{1, 2, 3, 4}
	fmt.Println(Add(1, array...)) //输出11
}

3、任意类型的不定参数

package main

import (
	"fmt"
)

/*
任意类型的不定参数,用interface{}表示
*/
func MyPrintf(args ...interface{}) {
	for _, arg := range args { //迭代不定参数
		switch arg.(type) {
		case int:
			fmt.Println(arg, "is int")
		case string:
			fmt.Println(arg, "is string")
		case float64:
			fmt.Println(arg, "is float64")
		case bool:
			fmt.Println(arg, " is bool")
		default:
			fmt.Println("未知的类型")
		}
	}
}

func main() {
	/*输出结果:
	  1 is int
	  test is string
	  1.5 is float64
	  false is bool
	  -1.5 is float64
	*/
	MyPrintf(1, "test", 1.5, false, -1.5)
}

Golang--不定参数类型

标签:表示   ase   结果   ola   ace   false   个数   class   def   

原文地址:https://www.cnblogs.com/zhangmingcheng/p/10148408.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!