GO語言匿名函數(shù)的幾種使用方式
匿名函數(shù)說明
在Go語言中,匿名函數(shù)(Anonymous Function)是一種沒有名稱的函數(shù)定義方式,可以直接定義并使用,或者賦值給變量。Go語言中的匿名函數(shù)也被稱為函數(shù)字面量(Function Literal)。
基本語法
func(參數(shù)列表) 返回值類型 {
// 函數(shù)體
}
匿名函數(shù)的幾種使用方式
直接定義并調(diào)用(立即執(zhí)行函數(shù))
這種調(diào)用方式和直接把功能寫在函數(shù)中的區(qū)別:
1、將無法復(fù)用功能塊獨立出來,一個功能使用一段代碼,結(jié)果清晰。
2、匿名函數(shù)中定義的變量有自己的空間,不會污染外部的變量。
package main
import "fmt"
func main() {
// 定義并立即執(zhí)行
func() {
fmt.Println("這是一個匿名函數(shù)")
}() // 注意這里的括號表示立即調(diào)用
// 帶參數(shù)的立即執(zhí)行匿名函數(shù)
func(msg string) {
fmt.Println("收到消息:", msg)
}("Hello, Go!")
}
賦值給變量,后續(xù)調(diào)用
這里將匿名函數(shù)賦值給函數(shù)指針變量add,后續(xù)直接調(diào)用函數(shù)指針變量add就相當(dāng)于調(diào)用匿名函數(shù)。
package main
import "fmt"
func main() {
// 將匿名函數(shù)賦值給變量
add := func(a, b int) int {
return a + b
}
result := add(3, 5)
fmt.Println("3 + 5 =", result) // 輸出: 3 + 5 = 8
}
作為函數(shù)參數(shù)(回調(diào)函數(shù))
package main
import "fmt"
// 接受函數(shù)作為參數(shù)的函數(shù)
func calculate(a, b int, op func(int, int) int) int {
return op(a, b)
}
func main() {
sum := calculate(10, 20, func(x, y int) int {
return x + y
})
product := calculate(10, 20, func(x, y int) int {
return x * y
})
fmt.Println("Sum:", sum) // 輸出: Sum: 30
fmt.Println("Product:", product) // 輸出: Product: 200
}
下面這個用法對于新手可能難以理解,博主來仔細拆解一下。
首先是函數(shù)的定義:

再來看看函數(shù)的調(diào)用和匿名函數(shù)的實現(xiàn):

到此這篇關(guān)于GO語言匿名函數(shù)的幾種使用方式的文章就介紹到這了,更多相關(guān)GO語言匿名函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
go語言題解LeetCode453最小操作次數(shù)使數(shù)組元素相等
這篇文章主要為大家介紹了go語言題解LeetCode453最小操作次數(shù)使數(shù)組元素相等示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-12-12

