今天是第五天,整篇都介紹function
好了
函式,是將多行程式碼組合在一起,提供給其他地方呼叫,讓撰寫更方便快速,且可重複利用的一種方式。另一個與函式相當接近的是method
,但那在介紹完struct
後比較好懂,因此丟到明天ˊˇˋ
func 函式名稱(參數) 回傳值型態{
...
}
// 正常宣告法
func add(x, y int) int {
return x + y
}
// 使用 := 宣告
func main() {
add := func(x float64, y float64) float64 {
return x + y
}
fmt.Println(add(3.3, 5.4)) //8.7
}
用在 goroutine
或該 function
只會使用一次的情況,宣告完賦予參數就可直接執行了。
// 定義一個匿名函式並直接執行
func main() {
// 沒有參數
func() {
fmt.Println("Hello anonymous")
}() // Hello anonymous
// 有參數
func(i, j int) {
fmt.Println(i + j)
}(1, 2) // 3
}
函式本身可以是另一個函式參數,也可以是回傳值
// compute 這個函式可接收其他函式作為參數
func compute(fn func(int, int) int) int {
return fn(10, 5)
}
func main() {
plus := func(x, y int) int {
return x + y
}
reduce := func(x, y int) int {
return x - y
}
fmt.Println(compute(plus)) // 15, 10+5
fmt.Println(compute(reduce)) // 5, 10-5
}
可為回傳值命名,或使用return
一次將所有參數回傳
// (ans int) <- 為回傳值命名
func add(x, y int) (ans int) {
ans = x + y
return
// return ans
}
func main() {
fmt.Println(add(50, 37)) // 87
}
今天就介紹到這,好吧量是真的有點少,但這畢竟是馬拉松嘛,配速才是重點啦,明天見ˊˇˋ
[Golang] function & method 函式與方法:
https://pjchender.dev/golang/function-and-method/
[Golang] 程式設計教學:撰寫函式 (Function):
https://opensourcedoc.com/golang-programming/function/
Golang