婷婷综合国产,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語言中函數作為值以及函數閉包的使用的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 扎赉特旗| 驻马店市| 敖汉旗| 长乐市| 义马市| 乌鲁木齐市| 喀什市| 多伦县| 天门市| 西吉县| 栖霞市| 江源县| 泸水县| 彭州市| 芷江| 玉溪市| 皋兰县| 固阳县| 丘北县| 轮台县| 内丘县| 满洲里市| 定结县| 大方县| 新乐市| 辽中县| 桂林市| 堆龙德庆县| 建湖县| 定襄县| 清水河县| 常州市| 绵竹市| 镶黄旗| 仁怀市| 中西区| 贵南县| 河北区| 繁昌县| 隆子县| 卫辉市|