[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