title: How get a pointer to a value in a map in Go
body: <p>I would like to get a pointer to a map value (which contains structs), so that I can modify a field in the struct, without having to re-assign it.</p>
  
  <pre><code>type Foo struct {
      Bar int64
  }
  
  func SomeFunction(arg * Foo) {
      ...
  }
  </code></pre>
  
  <p>What I currently have to do:</p>
  
  <pre><code>if val, ok := myMap[idx]; ok {
    // val is of type `Foo`
    SomeFunction(&amp;val)
    myMap[idx] = val
  }
  </code></pre>
  
  <p>What I'd like to do:</p>
  
  <pre><code>if val, ok := getPointer(myMap, idx); ok {
    // val is of type `* Foo`
    SomeFunction(val)
  }
  </code></pre>
  
  <p>Is there a way to do this Go, or do I need to rely on the compiler being smart enough to perform copy elision here?</p>