Go語言 閉包

2021-09-26 01:09:38 字數 524 閱讀 6674

使用閉包實現乙個小功能。判斷給定的檔名是否帶有字尾,如果有指定字尾就直接輸出,如果不帶字尾就新增字尾後,輸出檔名

package main

import

("fmt"

"strings"

)func

makesuffix

(suffix string

)func

(string

)string

return name }}

func

main()

程式的輸出為:

處理後的檔名 = xing.jpg

處理後的檔名 = demo.jpg

總結:

1、返回的匿名函式和makesuffix中的suffix形參組成了閉包

2、在這個例子中使用閉包,我們只需要傳入一次字尾名,就可以反覆使用。而使用傳統的函式,也能實現這個功能,但是需要每次呼叫函式時,都需要傳入字尾名

go語言中閉包

閉包 closure 在一些語言中,在函式中可以 巢狀 定義另乙個函式時,如果內部的函式引用了外部的函式的變數,則可能產生閉包。閉包可以用來在乙個函式與一組 私有 變數之間建立關聯關係。在給定函式被多次呼叫的過程中,這些私有變數能夠保持其永續性。golang的閉包 函式在golang中是 一等公民 ...

GO語言中的閉包

package main import fmt import fmt func main r res fmt.println r 1 r2 res fmt.println r2 2 r3 res fmt.println r3 3 乙個外層函式中有內層函式,該內層函式中,會操作外層函式的區域性變數 外...

Go語言之旅 閉包

閉包是在詞法上下文中引用了自由變數的函式,這種說法可能太過學術化了,很難理解。用通俗的話來說,閉包相當於在乙個函式中,去捕獲自由變數 在函式外部定義但在函式內被引用的變數 當脫離了捕獲該自由變數的上下文,依舊可以使用該自由變數。我們來看乙個例子 func test x int func func m...