This is very reasonable, especially since you can trigger a read of private variables even without reflection by taking the value of a structure s := Stats{} q := s // Will read stats to make a copy inside q Thankfully, we can’t use reflection to set a private variable.