title: Golang returning functions
body: <blockquote>
    <p>Can anyone explain why 0's and 1's are printed and not anything else? Thank you!</p>
  </blockquote>
  
  <pre><code>func makeFunction(name string) func() {
      fmt.Println("00000")
      return func() {
          makeFunction2("abcef")
      }
  }
  
  func makeFunction2(name string) func() {
      fmt.Println("11111")
      return func() {
          makeFunction3("safsf")
      }
  }
  
  func makeFunction3(name string) func() {
      fmt.Println("33333")
      return func() {
          fmt.Printf("444444")
      }
  }
  
  func main() {
      f := makeFunction("hellooo")
      f()
  }
  </code></pre>
  
  <p>Can anyone explain why 0's and 1's are printed and not anything else? Thank you!</p>