GO語言匿名函數(shù)的幾種使用方式
匿名函數(shù)說明
在Go語言中,匿名函數(shù)(Anonymous Function)是一種沒有名稱的函數(shù)定義方式,可以直接定義并使用,或者賦值給變量。Go語言中的匿名函數(shù)也被稱為函數(shù)字面量(Function Literal)。
基本語法
func(參數(shù)列表) 返回值類型 {
// 函數(shù)體
}
匿名函數(shù)的幾種使用方式
直接定義并調用(立即執(zhí)行函數(shù))
這種調用方式和直接把功能寫在函數(shù)中的區(qū)別:
1、將無法復用功能塊獨立出來,一個功能使用一段代碼,結果清晰。
2、匿名函數(shù)中定義的變量有自己的空間,不會污染外部的變量。
package main
import "fmt"
func main() {
// 定義并立即執(zhí)行
func() {
fmt.Println("這是一個匿名函數(shù)")
}() // 注意這里的括號表示立即調用
// 帶參數(shù)的立即執(zhí)行匿名函數(shù)
func(msg string) {
fmt.Println("收到消息:", msg)
}("Hello, Go!")
}
賦值給變量,后續(xù)調用
這里將匿名函數(shù)賦值給函數(shù)指針變量add,后續(xù)直接調用函數(shù)指針變量add就相當于調用匿名函數(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ù)(回調函數(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ù)的調用和匿名函數(shù)的實現(xiàn):

到此這篇關于GO語言匿名函數(shù)的幾種使用方式的文章就介紹到這了,更多相關GO語言匿名函數(shù)內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Golang 實現(xiàn)獲取當前函數(shù)名稱和文件行號等操作
這篇文章主要介紹了Golang 實現(xiàn)獲取當前函數(shù)名稱和文件行號等操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-05-05
Golang使用channel實現(xiàn)一個優(yōu)雅退出功能
最近補?Golang?channel?方面八股的時候發(fā)現(xiàn)用?channel?實現(xiàn)一個優(yōu)雅退出功能好像不是很難,之前寫的?HTTP?框架剛好也不支持優(yōu)雅退出功能,于是就參考了?Hertz?優(yōu)雅退出方面的代碼,為我的?PIANO?補足了這個?feature2023-03-03

