BlogJS BlogTwitter
Blog
JS Blog
Twitter

Closures in Go

Golang Concepts

  • Hello World
  • Operators in Go
  • Declarations in Go
  • Values in Go
  • Variables in Go
  • For in Go
  • If/Else in Go
  • Switch in Go
  • Arrays in Go
  • Slices in Go
  • Maps in Go
  • Range in Go
  • Functions in Go
  • Closures in Go
  • Recursion in Go
  • Pointers in Go
  • Strings and Runes in Go
  • Structs in Go
  • Methods in Go
  • Interfaces in Go
  • Generics in Go
  • Errors in Go
  • Goroutines in Go
  • Channels in Go
  • Select in Go
  • Timeouts in Go
  • Timers in Go
  • Worker Pools in Go
  • WaitGroups in Go
  • Mutexes in Go
  • Sorting in Go
  • Panic in Go
  • Defer in Go
  • Recover in Go
  • JSON in Go
  • XML in Go
  • Time in Go
  • Epoch in Go
  • Time Formatting in Go
  • Random Numbers in Go
  • Number Parsing in Go
  • URL Parsing in Go
  • SHA256 Hashes in Go
  • Base64 Encoding in Go
  • Reading Files in Go
  • Writing Files in Go
  • File Paths in Go
  • Directories in Go
  • Testing and Benchmarking in Go
  • Command-Line Arguments in Go
  • Command-Line Flags in Go
  • Command-Line Subcommands in Go
  • Environment Variables in Go
  • HTTP Client in Go
  • HTTP Server in Go
  • Context in Go
  • Signals in Go

Go: Closures

Go supports anonymous functions, which can form closures. Anonymous functions are useful when you want to define a function inline without having to name it.

Closure example in Go


    package main

    import "fmt"

    // this will form closure 
    func outerFunction() func() int {
        x := 10
        return func() int {
            x++
            return x
        }
    }

    func main() {
        increment := outerFunction()
        fmt.Println(increment())
        fmt.Println(increment())
    }

    // 11
    // 12

Previous Article

Command-Line Arguments in Go

Next Article

Channels in Go

LearnGolang

AboutPrivacyTerms & ConditionsContact us
Resources
All PostsCategoriesCode SnippetRoadmapInterview QuestionsJavaScript BlogCSS To Tailwind Converter
Other Link
Twitter
LearnGolangOnline
•
© 2023
•
All Right Reserved