Go語言的函式06 閉包函式

2022-05-14 19:30:08 字數 698 閱讀 3082

package main

import "fmt"

/*李逵和武松的study方法的邏輯是幾乎一模一樣的

然而為了分別儲存兩人的學習進度,需要開闢兩個全域性變數,函式內部的需要使用兩條分支結構才能完成業務邏輯

如果是108將都來學習。。。

此時**的可復用性很差

*/var progress int

func study(name string, hours int) ( int)

func main081()

/*使用閉包函式優化study

每個人有不同的學習進度,將這個進度儲存在【各自的閉包】中

*//*

閉包函式:返回函式的函式

閉包函式的好處:使用同乙份內層函式的**,建立出任意多個不同的函式物件,這些物件各自的狀態都被儲存在函式閉包(外層函式)中,各行其道,互不干擾

*/func getstudy(name string) func(int) int

return study

}func main()

輸出:

李逵學習了3小時

李逵學習了5小時

李逵學習了2小時

李逵的學習進度10/10000

宋江學習了9小時

宋江學習了8小時

宋江學習了5小時

宋江的學習進度22/10000

函式 閉包06

一 預設引數 預設引數 預設引數必須寫在後面,可以不指定引數名,但是順序要保證,否則要指定引數名。預設值如果不傳參,則使用預設值。在python中如果元組裡面只有乙個元素,元素後面不加逗號,輸出的結果就是不是元組。二 arge被稱為不定長引數 可變引數 1 可變引數允許傳入0個或任意個引數,這些可變...

Go語言函式中的閉包學習

go函式是可以閉包的。閉包是乙個函式值,他來自函式體外部的變數引用 閉包 外部函式定義的內部函式就是閉包。閉包的作用及好處 閉包給訪問外部函式定義的內部變數創造了條件。也將關於函式的一切封閉到了函式內部,減少了全域性變數,這也是閉包的真實含義。小demo 上邊小demo是go文件中的閉包寫法 pos...

go閉包函式的特點

所謂閉包就是乙個函式 捕獲 了和它在同一作用域的其它常量和變數。這就意味著當閉包被呼叫的時候,不管在程式什麼地方呼叫,閉包能夠使用這些常量或者變數。它不關心這些捕獲了的變數和常量是否已經超出了作用域,所以只有閉包還在使用它,這些變數就還會存在.package main import fmt func...