<i>Learn about stack versus heap, and recognize that Go treats the stack differently from other languages.</i><p>Note that the Go language spec does not even contain the terms &#x27;stack&#x27; and &#x27;heap. Whether something is stack or heap-allocated isn&#x27;t always clear. E.g. consider:<p><pre><code>    foo := &amp;Foo{} &#x2F;&#x2F; or: new(Foo)
</code></pre>
This could be stack or heap-allocated (in the most popular Go implementation) depending on whether the compiler thinks it escapes or not.