Use generics for Add and Delete Methods
This commit is contained in:
14
person.go
14
person.go
@@ -23,22 +23,14 @@ func NewPerson(name string) *Person {
|
||||
|
||||
// AddExtension adds the Extension to the Person.
|
||||
func (p *Person) AddExtension(e *ExtensionElement) {
|
||||
if p.Extensions == nil {
|
||||
p.Extensions = make([]*ExtensionElement, 1)
|
||||
p.Extensions[0] = e
|
||||
} else {
|
||||
p.Extensions = append(p.Extensions, e)
|
||||
}
|
||||
addToSlice(p.Extensions, e)
|
||||
}
|
||||
|
||||
// DeleteExtension deletes the Extension from the Person. It return an error.
|
||||
func (p *Person) DeleteExtension(id int) error {
|
||||
length := len(p.Extensions)
|
||||
if id > length {
|
||||
return fmt.Errorf("error deleting extension from person %v: id %v out of range %v", p, id, length)
|
||||
if err := deleteFromSlice(p.Extensions, id); err != nil {
|
||||
return fmt.Errorf("error deleting extension %v from person %v: %v", id, p, err)
|
||||
}
|
||||
|
||||
p.Extensions = append(p.Extensions[:id], p.Extensions[id+1:]...)
|
||||
return nil
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user