3.1. 第 1节:函数-函数定义和参数
1:函数定义和使用
package main
import "fmt"
//func 函数名(参数列表)(返回值列表){
//代码体
//}
//函数定义 只能定义一次
//在整个项目中函数名是唯一的 不能重名
func add(s1 int, s2 int) {
sum := s1 + s2
fmt.Println(sum)
}
func main() {
//fmt.Println("你好")
//v := len("你好")
//fmt.Println(v)
a := 10
b := 20
//函数调用 函数可以多次调用
//在函数调用时参数为实际参数(实参)有具体的值 用来给形式参数(形参)传递数据
add(a, b)
add(1, 2)
}
2:普通参数列表
所谓的普通参数列表指的是,我们给函数传递的参数的个数都是确定好。基本语法如下:
代码在上面
3:不定参数列表
根据前面的讲解,我们都知道了,在定义函数的时候根据需求指定参数的个数和类型,但是有时候如果无法确定参数的个数呢?
举例说明:上一小节我们写过一个求两个整数之和的函数,但是在实际的开发中,也会经常遇到这样的情况,就是项目经理(对整个项目的进度进行把控,对程序员进行管理的人员,称为项目经理),要求你写一个函数,实现整数的和。在这个要求中,项目经理并没有说清楚到底是有几个整数,那么我们应该怎样确定该函数的参数呢?就用接下来给大家讲解的“不定参数列表”来解决这个问题
package main
import "fmt"
//...不定参 在函数调用时可以传递不定量(0-n)的参数
//不定参使用数据格式为切片
func sum(arr ...int) {
//arr是一个数据的集合
//fmt.Println(arr)
//计算字符串个数
//len("你好")
//计算数据集合的个数
//count := len(arr)
//fmt.Println(count)
//通过arr[下标]可以找到具体数据的值
//下标是从0开始的 到len(arr)-1为最大值下标
//fmt.Println(arr[0])
//fmt.Println(arr[1])
//fmt.Println(arr[2])
//fmt.Println(arr[3])
sum := 0
//通过for循环遍历集合中的数据
//for i := 0; i < len(arr); i++ {
// //fmt.Println(arr[i])
// sum += arr[i]
//}
//通过for循环遍历集合中的数据
//i -> index 下标 v -> value 值
//_匿名变量 如果数据的值不需要接收 可以通过匿名变量来接收数据
for _, v := range arr {
//fmt.Println(i, v)
sum += v
}
fmt.Println(sum)
}
func main() {
//不定参函数调用
sum(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
sum(12, 21, 23, 32)
//fmt.Println 就是一个不定参的格式
fmt.Println("你好", 123, "再见")
}