亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

go語言閉包函數,舉例說明

標簽:
Go

    今天给大家聊一聊关于go语言闭包函数,首先说一说什么是闭包?

    闭包是指能够读取函数内部变量的函数,一般来说只有函数内部的子函数才能读取该函数的局部变量,GO语言就是这种方式。

    GO语言支持匿名函数,可作为闭包。

    举个例子:

package main
import "fmt"
func getSequence() func() int {
   i:=0
   return func() int {
      i+=1
     return i  
   }
}
func main(){
   /* nextNumber 为一个函数,函数 i 为 0 */
   nextNumber := getSequence()  
   /* 调用 nextNumber 函数,i 变量自增 1 并返回 */
   fmt.Println(nextNumber())
   fmt.Println(nextNumber())
   fmt.Println(nextNumber())   
   /* 创建新的函数 nextNumber1,并查看结果 */
   nextNumber1 := getSequence()  
   fmt.Println(nextNumber1())
   fmt.Println(nextNumber1())
}

    以上代码执行结果为:

1 2 3 1 2

    通过上面例子,可知闭包的作用:

    延长局部变量的生命周期(i)

    让函数外部能操作内部的局部变量(main函数通过匿名函数操作了局部变量i)

    可以简单理解为闭包和外层局部变量统称为闭包结构,闭包不会随着执行结束而自行销毁,导致局部变量未销毁,当没有变量引用闭包时,闭包才会销毁(比如将nextNumber =null)

    以上便是go语言闭包函数,举例说明的全部内容,更多内容干货可关注慕课网~

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消