title: Difference between initialization and zeroing, and new() and make() in GoLang
body: <p>I am coming from C# background, and I am little confused with the way of GoLang initialization and zeroing definitions. I think you can guess that this confusion arises from <code>make()</code> and <code>new()</code> functions in Go. What should I expect happening internally when these methods run? What happens when initialization and zeroing happens? </p>
  
  <p>I know that there is an <code>init()</code> function in GoLang that is used to initialize packages. But I think it is different than this. </p>
  
  <p>Anyways, what is the difference between them?</p>
  
  <h1>Update</h1>
  
  <p>I answered my own question, please check it to see my answer.</p>