婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 簡單了解Go語言中函數作為值以及函數閉包的使用

簡單了解Go語言中函數作為值以及函數閉包的使用

熱門標簽:電銷機器人可以補救房產中介嗎 最短的地圖標注 百度地圖標注搜索關鍵詞 ?兓? 電梯外呼訪客系統 騰訊外呼系統價格 谷歌便利店地圖標注 浙江人工智能外呼管理系統 成都呼叫中心外呼系統平臺

函數作為值

Go編程語言提供靈活性,以動態創建函數,并使用它們的值。在下面的例子中,我們已經與初始化函數定義的變量。此函數變量的目僅僅是為使用內置的Math.sqrt()函數。下面是一個例子:

復制代碼 代碼如下:

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))

}


當上述代碼被編譯和執行時,它產生了以下結果:

3

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

復制代碼 代碼如下:

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())
}


當上述代碼被編譯和執行時,它產生了以下結果:

1
2
3
1
2

您可能感興趣的文章:
  • JavaScript碎片—函數閉包(模擬面向對象)
  • 詳解Swift中的函數及函數閉包使用
  • 實例講解Python的函數閉包使用中應注意的問題
  • 解決js函數閉包內存泄露問題的辦法
  • .NET并發編程之函數閉包

標簽:雅安 宜昌 盤錦 眉山 七臺河 邢臺 紹興 上海

巨人網絡通訊聲明:本文標題《簡單了解Go語言中函數作為值以及函數閉包的使用》,本文關鍵詞  簡單,了解,語,言中,函數,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《簡單了解Go語言中函數作為值以及函數閉包的使用》相關的同類信息!
  • 本頁收集關于簡單了解Go語言中函數作為值以及函數閉包的使用的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 中方县| 五寨县| 中方县| 公主岭市| 靖江市| 法库县| 甘洛县| 临猗县| 托克托县| 凤山县| 乐平市| 肥西县| 毕节市| 揭阳市| 乌拉特后旗| 中阳县| 八宿县| 泗阳县| 康定县| 麻栗坡县| 江口县| 定西市| 历史| 西青区| 汉沽区| 银川市| 永福县| 江川县| 松潘县| 黑龙江省| 晴隆县| 弥渡县| 和平县| 苗栗县| 京山县| 泸西县| 惠水县| 雷州市| 桃源县| 饶平县| 山阳县|