-
Notifications
You must be signed in to change notification settings - Fork 0
/
interface-lista.go
34 lines (26 loc) · 1.03 KB
/
interface-lista.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package main
import "fmt"
type ListaGenerica []interface{}
func (lista *ListaGenerica) RemoverIndice (indice int) interface{} {
l := *lista
removido := l[indice]
*lista = append(l[0:indice], l[indice+1:]...)
return removido
}
func (lista *ListaGenerica) RemoverInicio() interface{} {
return lista.RemoverIndice(0)
}
func (lista *ListaGenerica) RemoverFim() interface{} {
return lista.RemoverIndice(len(*lista)-1)
}
func main() {
lista := ListaGenerica{
1, "Café", 42, true, 23, "Bola", 3.14, false,
}
fmt.Printf("Lista original:\n%v\n\n", lista)
fmt.Printf("Removendo do início: %v, após remoção: \n%v\n", lista.RemoverInicio(), lista)
fmt.Printf("Removendo do fim: %v, após remoção: \n%v\n", lista.RemoverFim(), lista)
fmt.Printf("Removendo do índice: %v, após remoção: \n%v\n", lista.RemoverIndice(3), lista)
fmt.Printf("Removendo do índice: %v, após remoção: \n%v\n", lista.RemoverIndice(0), lista)
fmt.Printf("Removendo do último índice: %v, após remoção: \n%v\n", lista.RemoverIndice(len(lista)-1), lista)
}