• Golang--不定参数类型


    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)
    }
  • 相关阅读:
    Ansible import_playbook 导入playbook
    Ansible Playbook 变量传递
    Ansible Notify与Handler组合
    Ansible Role
    Ansible infile模块
    Ansible When有条件的运行任务
    Ansible register捕获命令输出
    Ansible Command Shell Raw模块区别
    Ansible Facts
    Ansible Jinjia2模块
  • 原文地址:https://www.cnblogs.com/zhangmingcheng/p/10148408.html
Copyright © 2020-2023  润新知