匿名函數:匿名函數是沒有名稱的函數,用於建立一次性函數或回呼。閉包:閉包包含匿名函數和外部變數引用,可以存取和修改外部變數。
Go 語言中的匿名函數和閉包
什麼是匿名函數?
匿名函數是沒有名稱的函數,通常用於建立一次性使用的函數或回呼。
宣告匿名函數語法:
func(参数列表)(返回值列表) { 函数体 }
例如:
將數字列表平方:
numbers := []int{1, 2, 3, 4, 5} result := map(func(n int) int { return n * n }, numbers)
什麼是閉包?
閉包是一個包含匿名函數和外部變數參考的函數值。這意味著閉包可以存取和修改外部變數。
建立閉包語法:
func(参数列表)(返回值列表) { // 内部定义的变量 变量名 := 值 return func(闭包参数列表)(闭包返回值列表) { // 可以访问和修改内部变量 } }
範例:
建立一個傳回每頁重複指定次數的單字的函數:
package main import "fmt" func makeRepeated(s string, n int) func() string { i := 0 return func() string { i++ return fmt.Sprintf("%s%d", s, i) } } func main() { repeat := makeRepeated("a", 5) fmt.Println(repeat()) fmt.Println(repeat()) }
輸出:
a1 a2
以上是golang匿名函數和閉包的程式碼範例與最佳範例解析的詳細內容。更多資訊請關注PHP中文網其他相關文章!