title: Public, Private - Upper Case, Lower Case:
body: <p>New to GoLang, coming from Delphi, C++ :</p>
  
  <p>First time I tried to create my own package in Go, I followed all the instructions about how to lay out the workspace, etc, but I kept on getting a compiler error:</p>
  
  <pre><code>./myPackage.go:52: undefined: myFunc
  </code></pre>
  
  <p>After poking around a bit I discovered that the public access modifier in Go is achieved simply by declaring a function in upper case. Great.</p>
  
  <p>But when I started experimenting with the container classes - <code>List</code> for starters, I discovered I had to declare a List reference return value like this:</p>
  
  <pre><code>func GetFactors(value *int64) *list.List {...
  </code></pre>
  
  <p><strong><code>*list</code> is in lower case.</strong></p>
  
  <p>Same when I declared a local reference to a list - I had to use:</p>
  
  <pre><code>l := list.New()
  </code></pre>
  
  <p><strong>Again, lower case for <code>list</code>.</strong></p>
  
  <p>So, I'm confused. What is the rule? The list calls and references are obviously public, or I wouldn't be able to call/use them - so why are they in lower case?</p>