Go | 初步了解函式是什麼?
💬 簡介
函式是程式設計中的基礎概念之一。它可以讓我們將一段程式碼封裝成為一個可重複使用的單元,藉此提高程式的可讀性與維護性。在 Go 語言中,函式是非常核心的部分,它不僅能封裝邏輯,還能夠進行參數傳遞和返回結果。
本篇文章將簡單介紹函式,幫助你了解它的基本概念和語法,並展示如何在日常開發中使用它們。
圖片來源:Gophers
🔎 什麼是函式?
函式(Function)是一組可以重複執行的程式碼,它有自己的名稱,可以接受參數並返回結果。使用函式的好處是能讓程式邏輯更加清晰、模組化,並且可以重複使用。
在 Go 中,函式由以下幾個基本部分構成:
- 函式名稱:用來識別函式。
- 參數:傳遞給函式的資料,可以是任意型別。
- 返回值:函式執行後返回的結果。
1️⃣ 函式的基本語法
在 Go 語言中,函式的定義語法如下:
1 | func 函式名稱(參數1 型別, 參數2 型別, ...) 回傳型別 { |
🖥️ 程式邏輯解析:
- func:關鍵字,用來定義函式。
- 函式名稱:函式的識別名稱。
- 參數:可以有多個,並且每個參數都有指定的型別。
- 回傳型別:定義函式回傳的結果型別。
- return:返回指定的結果。
- 範例:基本的函式定義
1
2
3
4
5
6
7
8
9
10
11
12
13package main
import "fmt"
// 定義一個函式,用來計算兩個數字的和
func add(a int, b int) int {
return a + b
}
func main() {
sum := add(10, 20)
fmt.Println("兩數之和:", sum) // 輸出:兩數之和: 30
}📝 在這個範例中,我們定義了一個
add
函式,它接受兩個整數作為參數,並返回它們的和。在main
函式中,我們呼叫add
函式並顯示結果。
🔢 函式參數與回傳值
1️⃣ 多個參數與相同型別
Go 允許我們在函式中使用多個參數,甚至對於型別相同的參數,可以將它們合併成一個簡單的宣告。
- 範例:多個相同型別的參數
1
2
3
4
5
6
7
8
9
10
11
12
13package main
import "fmt"
// 定義一個函式,接受兩個相同型別的參數
func add(a, b int) int {
return a + b
}
func main() {
sum := add(5, 8)
fmt.Println("加總結果:", sum) // 輸出:加總結果: 13
}📝 在這個範例中,我們將
a
和b
的型別都寫成int
,這是 Go 語言提供的一種簡化語法。
2️⃣ 回傳多個值
Go 支援函式返回多個值,這對於需要返回多個結果的情況非常有用。
- 範例:函式返回多個值
1
2
3
4
5
6
7
8
9
10
11
12
13
14package main
import "fmt"
// 定義一個函式,返回兩個值
func calculate(a int, b int) (int, int) {
return a + b, a * b
}
func main() {
sum, product := calculate(4, 5)
fmt.Println("加總:", sum) // 輸出:加總: 9
fmt.Println("乘積:", product) // 輸出:乘積: 20
}📝 在這個範例中,
calculate
函式同時返回了兩個值:加總和乘積。我們在main
函式中接收這兩個返回值並顯示出來。
🔄 函式作為變數
在 Go 中,函式不僅是語法結構,也可以作為變數傳遞或賦值。這讓函式的使用變得更加靈活。
- 範例:函式作為變數
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15package main
import "fmt"
func add(a, b int) int {
return a + b
}
func main() {
// 將函式 assign 給變數
sum := add
result := sum(10, 20)
fmt.Println("結果:", result) // 輸出:結果: 30
}📝 在這個範例中,我們將
add
函式賦值給變數sum
,並在後續直接通過sum
來執行函式。
🚨 關於「函式作為變數」這部分會於下一章節進行較為深入的介紹。
⚠️ 注意事項
1️⃣ 函式中的參數與返回值型別
當你定義函式時,必須確保傳遞的參數和返回值的型別與定義的型別一致。如果型別不匹配,Go 會報錯。
2️⃣ 命名規則
函式名稱首字母大寫時,函式是公開的,可以被其他包調用;如果首字母小寫,則該函式是包內部使用的私有函式。
🎯總結
函式是 Go 程式設計中的重要基礎概念,它有助於將重複的邏輯封裝成可重用的模組,提高程式的可維護性。理解函式的語法、參數傳遞和返回值對於寫出清晰、簡潔的程式碼至關重要。
最後建議回顧一下 Go | 菜鳥教學 目錄,了解其章節內容。
註:以上參考了
Go