Go的閉包——計數器

跟Js的閉包原理差不多,典型的用法,計數器。可以對比看看
主要注意寫法!

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()) /*1*/
   fmt.Println(nextNumber()) /*2*/
   fmt.Println(nextNumber()) /*3*/

   /* 創建新的函數 nextNumber1,並查看結果 */
   nextNumber1 := getSequence()  
   fmt.Println(nextNumber1()) /*1*/
   fmt.Println(nextNumber1()) /*2*/
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章