Are maps passed by value or by reference in Go?
<p>Are maps passed by value or reference in Go ?</p>

<p>It is always possible to define a function as following, but is this an overkill ?</p>

<pre><code>func foo(dat *map[string]interface{}) {...}
</code></pre>

<p>Same question for return value. Should I return a pointer to the map, or return the map as value ? </p>

<p>The intention is of course to avoid unnecessary data copy. </p>