Go语言的函数02---参数

package main

import "fmt"

/*
常量,变量,函数---源代码的成员
给成员命名的字符称之为【标识符】
合法的标识符有:大小写字母,数字,下划线
命名时不能以数字开头
*/

func Add0() {
	fmt.Println("Add0")
}

/*有参函数*/
func Add1(arg int) {
	fmt.Println("Add1", arg)
}

/*多个参数,同种类型*/
func Add2(a int, b int) {
	sum := a + b
	fmt.Println("参数之和是", sum)
}

func Add3(a, b int) {
	sum := a + b
	fmt.Println("参数之和是", sum)
}

/*多个参数,不同类型*/
func Add4(a, b int, c float64, d float64) {
	aFloat := float64(a)
	bFloat := float64(b)
	sum := aFloat + bFloat + c + d
	fmt.Println("参数之和是", sum)
}

/*
不定长参数
args 接受任意多个整型参数
*/
func Add5(args ...int) {
	fmt.Println(args)
	fmt.Printf("args 的类型是%T
", args)
	/*
	使用内建函数len()求args的长度
	内建函数(buildin function)是指无需主语,直接调用的函数
	*/
	fmt.Printf("args 的长度是%d
", len(args))
	//遍历不定长参数中的每一个数据
	for i := 0; i < len(args); i++ {
		// args[i]是参数中第i个数据
		fmt.Printf("args中第%d个参数是%v
", i, args[i]) // []int 整型切片(一种数据容器)
	}
	//求和
	var sum int
	for i := 0; i < len(args); i++ {
		sum += args[i]
	}
	fmt.Printf("参数求和为:%d
", sum)
}

/*
定长参数和不定长参数混用

不定长参数只能有一个
不定长参数必须在最后一个
*/

func Add6(a, b int, args ...float64) {
	aFloat := float64(a)
	bFloat := float64(b)
	sum := aFloat + bFloat
	for i := 0; i < len(args); i++ {
		sum += args[i]
	}
	fmt.Printf("参数之和:%f
", sum)
}

func main() {
	Add4(1, 2, 3, 4)
	Add5(1, 2, 3, 4, 7)
	Add6(1, 2, 3, 4, 10)
}

输出:

参数之和是 10
[1 2 3 4 7]
args 的类型是[]int
args 的长度是5
args中第0个参数是1
args中第1个参数是2
args中第2个参数是3
args中第3个参数是4
args中第4个参数是7
参数求和为:17
参数之和:20.000000

  

原文地址:https://www.cnblogs.com/yunweiqiang/p/11789056.html