在Go 中保留局部變數值:重溫靜態局部變數
與C 等語言不同,C 語言使用「靜態」來保留局部變數對於變數值,Go 提供了另一種解決方案:閉包。
深入研究閉包:狀態維護的關鍵
Go 中的函數文字稱為閉包,允許它們引用其封閉範圍內的變數。這建立了一個共享上下文,其中變數持續超出封閉函數的範圍,從而實現狀態維護。
範例:在 Go 中實作閉包
而不是宣告我們的變數在全域範圍內,我們將其放置在函數定義之外。例如:
func main() { x := 1 // Variable x is now outside the function definition y := func() { fmt.Println("x:", x) // Closure refers to variable x x++ // Value of x is incremented } for i := 0; i < 10; i++ { y() // Repeated calls to the closure modify and print the value of x } }
透過利用閉包,Go 開發人員可以有效地模擬 C 中靜態局部變數的功能,使他們能夠在多個函數呼叫中保存和操作局部變數值。
以上是Go 閉包如何在函數呼叫中保留局部變數值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!