加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Golang--不定参数类型

发布时间:2020-12-16 09:31:16 所属栏目:大数据 来源:网络整理
导读:1、不定参数类型 不定参数是指函数传入的参数个数为不定数量。 package mainimport ("fmt")//不定参数函数func Add(a int,args ...int) (result int) {result += afor _,arg := range args {result += arg}return}func main() {fmt.Println(Add(1,2,3,4,5,6,

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,arg := range args {
		result += arg
	}
	return
}

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

func main() {
	fmt.Println(SetData(1,3)) //输出7
	array := []int{1,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)
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读