title: Pass by reference nested structures through reflection
body: <pre><code>type Client struct {
      Id                int
      Age               int
      PrimaryContact    Contact
      Name              string
  }
  
  type Contact struct {
      Id        int
      ClientId  int
      IsPrimary bool
      Email     string
  }
  </code></pre>
  
  <p>The above is a sample code; what I am trying to achieve is the following:
  - loop through all Client struct fields using reflection 
  - for each "primitive" field set a default value using reflection
  - for each struct field use recursion to apply the above steps</p>
  
  <p>The issue is that when PrimaryContact field is introspected and when I am trying to set a value for any of its fields I end up with the following panic:</p>
  
  <blockquote>
    <p>reflect.Value.Set using unaddressable value</p>
  </blockquote>
  
  <p>The reason if I am not mistaken is that PrimaryContact is passed by value and not by reference so when I would call Set method on any of its fields it would change fields values on the copy and not on the actual argument. How can I overcome this issue? How I could pass PrimaryContact field to my method by reference using reflection? </p>