[TOC]
函数参数分为 `形式参数` 和 `实际参数`
> 形式参数:定义函数时,用于接收外部传入的数据,叫做形式参数,简称形参。
> 实际参数:调用函数时,传给形参的实际的数据,叫做实际参数,简称实参。
## 引入
上一章 [函数定义和调用](./funcDefAndCall.md) ,有打印 9x9乘法口诀表 的函数。功能是实现到了,但是可玩性稍微差些。只能固定打印9x9的。现在需求是输入一个参数,打印对应行跟列的乘法口诀表。请参考以下代码...
```go
/* 自定义乘法口诀表行数
示例:打印 6x6 乘法口诀表,multTable(6)
*/
func multTable(num int) {
for i := 1; i < num+1; i++ {
for j := 1; j < num+1; j++ {
if j <= i {
fmt.Printf("%dx%d=%-2d ", i, j, i*j)
} else {
break
}
}
fmt.Println("")
}
}
func main() {
multTable(6)
}
```
## 位置参数
参数不同类型数据,则需要写全参数数据类型
```go
/* 自我介绍模板
需要传递两个参数。第一个参数是名字,第二个参数是年龄
*/
func introduceTemplate(name string, age int) {
fmt.Printf("我叫%s, 今年%d岁啦!\n", name, age)
}
func main() {
introduceTemplate("jiaxzeng", 18)
}
```
多个参数数据类型都是相同的话,前面的参数类型可以省略不写。
```go
/* 两数之间的累加和
调用的时候,需要传两个参数。将两数之间的数相加并输出。例如:twoNumAddUp(1, 100) 和 twoNumAddUp(100, 1),结果都是5050
*/
func twoNumAddUp(num1, num2 int) {
sum := 0
if num1 < num2 {
for i := num1; i <= num2; i++ {
sum += i
}
} else {
for i := num1; i >= num2; i-- {
sum += i
}
}
fmt.Printf("sum: %v\n", sum)
}
func main() {
twoNumAddUp(10, 1)
}
```
## 可变长参数
可变长的参数,本质是使用切片接收剩下同类型的所有数据。
>[info] 注意:可变长参数只能放在参数最后一个,且一个函数只能存在一个可变长参数。
```go
/* 多个数累计和
传任何个整型数字,将所有数字累加并输出结果。
*/
func allNumAdd(nums ...int) {
// fmt.Printf("type: %T\n", nums) // type: []int
sum := 0
for _, num := range nums {
sum += num
}
fmt.Printf("sum: %v\n", sum)
}
func main() {
allNumAdd(13, 23, 35, 74, 42)
}
```
- Golang简介
- 开发环境
- Golang安装
- 编辑器及快捷键
- vscode插件
- 第一个程序
- 基础数据类型
- 变量及匿名变量
- 常量与iota
- 整型与浮点型
- 复数与布尔值
- 字符串
- 运算符
- 算术运算符
- 关系运算符
- 逻辑运算符
- 位运算符
- 赋值运算符
- 流程控制语句
- 获取用户输入
- if分支语句
- for循环语句
- switch语句
- break_continue_goto语法
- 高阶数据类型
- pointer指针
- array数组
- slice切片
- slice切片扩展
- map映射
- 函数
- 函数定义和调用
- 函数参数
- 函数返回值
- 作用域
- 函数形参传递
- 匿名函数
- 高阶函数
- 闭包
- defer语句
- 内置函数
- fmt
- strconv
- strings
- time
- os
- io
- 文件操作
- 编码
- 字符与字节
- 字符串
- 读写文件
- 结构体
- 类型别名和自定义类型
- 结构体声明
- 结构体实例化
- 模拟构造函数
- 方法接收器
- 匿名字段
- 嵌套与继承
- 序列化
- 接口
- 接口类型
- 值接收者和指针接收者
- 类型与接口对应关系
- 空接口
- 接口值
- 类型断言
- 并发编程
- 基本概念
- goroutine
- channel
- select
- 并发安全
- 练习题
- 第三方库
- Survey
- cobra