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