func Name(o string) optPerson {
	return func(t *Person) optPerson {
		previous := t.Name
		t.Name = o
		return Name(previous)
	}
}
Name sets a value for instances of type Person.
package example
type optPerson func(*Person) optPerson
func (t *Person) Option(options ...optPerson) (previous optPerson) {
	for _, opt := range options {
		previous = opt(t)
	}
	return previous
}