婷婷综合国产,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語言中函數作為值以及函數閉包的使用的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 济源市| 任丘市| 黑河市| 礼泉县| 织金县| 横峰县| 康平县| 杂多县| 九江市| 镇安县| 聊城市| 哈尔滨市| 怀宁县| 惠东县| 丹巴县| 云阳县| 抚宁县| 永春县| 阜新市| 南乐县| 祁阳县| 天门市| 新建县| 巴林左旗| 宁乡县| 高台县| 宁德市| 前郭尔| 五大连池市| 舒兰市| 五原县| 化州市| 清河县| 铜鼓县| 水城县| 鄄城县| 龙南县| 兴隆县| 美姑县| 乌拉特中旗| 南阳市|