【goベース】閉パック

2676 ワード

クローズドパッケージ
閉パッケージは、関数とそれに関連する参照環境の組合せの全体(エンティティ)です.
package main

import (
	"fmt"
)

// AddUpper    
func AddUpper() func(int) int {
	var n int = 10
	return func(x int) int {
		n = n + x
		return n
	}
}
func main() {
	f := AddUpper()
	fmt.Println(f(1)) //   11
	fmt.Println(f(2)) //   13
}

  • は閉パケットをクラスと見なすことができ、前例ではAddUpper()をクラスと見なすことができ、匿名関数func (x int) int {...}はクラスのメソッドであり、関数で参照されるnはクラスの属性である.