title: Recommended way to do getters and setters
body: <p>I have a project which will be written in go and it will have over 30 fields within a struct that will need to be validated before the value is allowed to be set.  </p>
  
  <p>In python I would probably use descriptors or at least properties to do this to prevent as much boiler plate as possible.</p>
  
  <p>My question is what generally is the best way to do this in go?  Is it convention just to have lower case vars within the struct and have get and sets functions for each property or is there a better way to do this to prevent boiler plate code?</p>