五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

go語(yǔ)言中的閉包

2023-07-20 17:00 作者:青陽(yáng)小棧  | 我要投稿

1、什么是閉包

? ? ? ? 閉包是一個(gè)函數(shù)返回另一個(gè)函數(shù)的體現(xiàn),一般以匿名函數(shù)的形式出現(xiàn)在一個(gè)函數(shù)返回值的位置,閉包可以動(dòng)態(tài)靈活的創(chuàng)建以及傳遞。閉包使用函數(shù)的變量會(huì)被保存在內(nèi)存中,內(nèi)存消耗大,使用閉包時(shí)需要注意。

? ? ? ? 比如以下代碼,f1函數(shù)返回的是一個(gè)func(),返回值為int的匿名函數(shù)。此時(shí)該匿名函數(shù)是閉包的體現(xiàn),可以靈活的創(chuàng)建。

? ? ? ? 獲取這樣理解閉包還是不夠清楚,看下面函數(shù)。此時(shí)f2在f1函數(shù)的內(nèi)部,此時(shí)f1的局部變量在f2函數(shù)中是可見的,但是f2中的局部變量在f1中是不可見的。父對(duì)象的所有變量,對(duì)子對(duì)象都是可見的,反之不行。

? ? ? ? f2可以讀取f1中的局部變量,那么只要把f2作為返回值,那么在f1的外部就可以讀取f1的內(nèi)部變量了。

? ? ? ? 以上f2函數(shù),就是閉包,閉包是能夠讀取其他函數(shù)內(nèi)部變量的函數(shù),或者理解為定義在一個(gè)函數(shù)內(nèi)部的函數(shù),是將函數(shù)內(nèi)部和函數(shù)外部連接起來(lái)的媒介。


2、閉包的作用

? ? ? ? 讀取函數(shù)內(nèi)部的變量,另一個(gè)就是讓這些變量的值始終保持在內(nèi)存中。

? ? ? ? 為什么呢?原因就在于f1是f2的父函數(shù),而f2被賦給了一個(gè)全局變量,這導(dǎo)致f2始終在內(nèi)存中,而f2的存在依賴于f1,因此f1也始終在內(nèi)存中,不會(huì)在調(diào)用結(jié)束后,被垃圾回收機(jī)制回收。

? ? ? ? 因?yàn)殚]包是將函數(shù)內(nèi)部和函數(shù)外部連接起來(lái)的媒介,當(dāng)使用閉包時(shí),不要輕易改變父函數(shù)私有變量的值,因?yàn)樗接凶兞康闹狄桓淖儯]包以及外部引用閉包的函數(shù)值都可能會(huì)改變。



go語(yǔ)言中的閉包的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
汽车| 建始县| 永修县| 苍梧县| 乌鲁木齐县| 阿拉善右旗| 海宁市| 涿鹿县| 苗栗县| 本溪| 靖安县| 洪洞县| 蛟河市| 襄垣县| 遂昌县| 丰台区| 阿克陶县| 贡山| 太仆寺旗| 肇州县| 南宁市| 裕民县| 嘉禾县| 田阳县| 汉源县| 故城县| 安顺市| 科技| 淳安县| 淅川县| 巴塘县| 寿宁县| 婺源县| 双城市| 金沙县| 宁蒗| 仙居县| 普宁市| 北碚区| 华蓥市| 尖扎县|