code: func (s *Struct) Names() []string {
  	fields := getFields(s.value, s.TagName)
  
  	names := make([]string, len(fields))
  
  	for i, field := range fields {
  		names[i] = field.Name()
  	}
  
  	return names
  }
docs: // Names returns a slice of field names. A struct tag with the content of "-"
  // ignores the checking of that particular field. Example:
  //
  //   // Field is ignored by this package.
  //   Field bool `structs:"-"`
  //
  // It panics if s's kind is not struct.