github.com/giovannyortegon/go@v0.0.0-20220115155912-8890063f5bdd/Profesional/2-Reto/Reto1.go (about)

     1  package main
     2  
     3  import "fmt"
     4  
     5  // lista de tarea
     6  type TaskList struct {
     7  	tasks[] * Task
     8  }
     9  
    10  func (tl * TaskList) appendTask (t * Task) {
    11  	tl.tasks = append(tl.tasks, t)
    12  }
    13  
    14  func (tl * TaskList) removeTask (index int) {
    15  	tl.tasks = append(tl.tasks[:index], tl.tasks[index + 1:]...)
    16  }
    17  
    18  type Task struct {
    19  	name string
    20  	desc string
    21  	completed bool
    22  }
    23  
    24  func (t * Task) toPrint() {
    25  	fmt.Printf("Nombre: %s\nDescription: %s\nConectado: %t\n",
    26  			   t.name, t.desc, t.completed)
    27  }
    28  
    29  func main() {
    30  	t1 := Task {"Curso Go","APrendizaje Go desde Principante a Master", false}
    31  	t1.toPrint()
    32  
    33  	t2 := Task {
    34  		name: "Curso Python",
    35  		desc:	"Desarrollo de Scripts for Cybersecurity",
    36  		completed: false,
    37  	}
    38  	t2.toPrint()
    39  
    40  	lista := TaskList{}
    41  	lista.appendTask(&t1)
    42  	lista.appendTask(&t2)
    43  
    44  	lista.removeTask(1)
    45  
    46  	for idx, task := range lista.tasks {
    47  		fmt.Println(idx, task.name)
    48  	}
    49  
    50  }