गो में नेस्टेड फ़ंक्शन की अनुमति है। आपको बस बाहरी फ़ंक्शन के भीतर उन्हें स्थानीय चर असाइन करने की आवश्यकता है, और उन चर का उपयोग करके उन्हें कॉल करें।
उदाहरण:
func outerFunction(iterations int, s1, s2 string) int {
someState := 0
innerFunction := func(param string) int {
totalLength := 0
for i := 0; i < iterations; i++) {
totalLength += len(param)
}
return totalLength
}
someState = innerFunction(s1)
someState += innerFunction(s2)
return someState
}
myVar := outerFunction(100, "blah", "meh")
आंतरिक कार्य अक्सर स्थानीय गोरोइन के लिए उपयोगी होते हैं:
func outerFunction(...) {
innerFunction := func(...) {
...
}
go innerFunction(...)
}
func main() { func (x int) int { return x+1; }(3) }