濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > 簡(jiǎn)單了解Go語(yǔ)言中函數(shù)作為值以及函數(shù)閉包的使用

簡(jiǎn)單了解Go語(yǔ)言中函數(shù)作為值以及函數(shù)閉包的使用

熱門標(biāo)簽:電銷機(jī)器人可以補(bǔ)救房產(chǎn)中介嗎 最短的地圖標(biāo)注 百度地圖標(biāo)注搜索關(guān)鍵詞 ?兓? 電梯外呼訪客系統(tǒng) 騰訊外呼系統(tǒng)價(jià)格 谷歌便利店地圖標(biāo)注 浙江人工智能外呼管理系統(tǒng) 成都呼叫中心外呼系統(tǒng)平臺(tái)

函數(shù)作為值

Go編程語(yǔ)言提供靈活性,以動(dòng)態(tài)創(chuàng)建函數(shù),并使用它們的值。在下面的例子中,我們已經(jīng)與初始化函數(shù)定義的變量。此函數(shù)變量的目?jī)H僅是為使用內(nèi)置的Math.sqrt()函數(shù)。下面是一個(gè)例子:

復(fù)制代碼 代碼如下:

package main

import (
   "fmt"
   "math"
)

func main(){
   /* declare a function variable */
   getSquareRoot := func(x float64) float64 {
      return math.Sqrt(x)
   }

   /* use the function */
   fmt.Println(getSquareRoot(9))

}


當(dāng)上述代碼被編譯和執(zhí)行時(shí),它產(chǎn)生了以下結(jié)果:

3

函數(shù)閉包
Go編程語(yǔ)言支持匿名函數(shù)其可以作為函數(shù)閉包。當(dāng)我們要定義一個(gè)函數(shù)內(nèi)聯(lián)不傳遞任何名稱,它可以使用匿名函數(shù)。在我們的例子中,我們創(chuàng)建了一個(gè)函數(shù)getSequence()將返回另一個(gè)函數(shù)。該函數(shù)的目的是關(guān)閉了上層函數(shù)的變量i 形成一個(gè)閉合。下面是一個(gè)例子:

復(fù)制代碼 代碼如下:

package main

import "fmt"

func getSequence() func() int {
   i:=0
   return func() int {
      i+=1
   return i 
   }
}

func main(){
   /* nextNumber is now a function with i as 0 */
   nextNumber := getSequence() 

   /* invoke nextNumber to increase i by 1 and return the same */
   fmt.Println(nextNumber())
   fmt.Println(nextNumber())
   fmt.Println(nextNumber())
  
   /* create a new sequence and see the result, i is 0 again*/
   nextNumber1 := getSequence() 
   fmt.Println(nextNumber1())
   fmt.Println(nextNumber1())
}


當(dāng)上述代碼被編譯和執(zhí)行時(shí),它產(chǎn)生了以下結(jié)果:

1
2
3
1
2

您可能感興趣的文章:
  • JavaScript碎片—函數(shù)閉包(模擬面向?qū)ο螅?/li>
  • 詳解Swift中的函數(shù)及函數(shù)閉包使用
  • 實(shí)例講解Python的函數(shù)閉包使用中應(yīng)注意的問(wèn)題
  • 解決js函數(shù)閉包內(nèi)存泄露問(wèn)題的辦法
  • .NET并發(fā)編程之函數(shù)閉包

標(biāo)簽:雅安 宜昌 盤錦 眉山 七臺(tái)河 邢臺(tái) 紹興 上海

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《簡(jiǎn)單了解Go語(yǔ)言中函數(shù)作為值以及函數(shù)閉包的使用》,本文關(guān)鍵詞  簡(jiǎn)單,了解,語(yǔ),言中,函數(shù),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《簡(jiǎn)單了解Go語(yǔ)言中函數(shù)作為值以及函數(shù)閉包的使用》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于簡(jiǎn)單了解Go語(yǔ)言中函數(shù)作為值以及函數(shù)閉包的使用的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    临西县| 青河县| 榆树市| 芮城县| 大田县| 庆安县| 吴堡县| 崇左市| 凌海市| 会东县| 和平区| 武冈市| 视频| 昭觉县| 周宁县| 措勤县| 武安市| 余干县| 大方县| 呼图壁县| 漠河县| 宿松县| 安庆市| 华安县| 浦东新区| 平湖市| 太仓市| 长白| 江门市| 九龙坡区| 嘉善县| 高尔夫| 恩平市| 兴和县| 荥经县| 武宁县| 永平县| 崇明县| 南部县| 朔州市| 梅河口市|