Go - Ayuda con Struct

<<>>
 
Vista:
sin imagen de perfil
Val: 10
Ha disminuido 1 puesto en Go (en relación al último mes)
Gráfica de Go

Ayuda con Struct

Publicado por dario (2 intervenciones) el 23/07/2023 10:40:49
Hola comunidad tengo este codigo, lo que estoy tratando de hacer es almacenar los datos de un struct dentro de un slice pero me aparecen errores, alguien sabe como hacerlo.
Salu2.

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
35
36
37
package main
 
import "fmt"
 
type Caminata struct {
	numero int
	nombre string
	edad   int
	tiempo int
	//categoria string
}
 
func main() {
	var slice1 []Caminata
	var i int
	var seguir string
 
	for {
		fmt.Print("Numero de dorsal: ")
		fmt.Scan(&slice1[i].numero)
		fmt.Print("Nombre del atleta: ")
		fmt.Scan(&slice1[i].nombre)
		fmt.Print("Edad: ")
		fmt.Scan(&slice1[i].edad)
		fmt.Print("Tiempo en segundos: ")
		fmt.Scan(&slice1[i].tiempo)
		fmt.Println("Desea agregar otro atleta s/n: ")
		fmt.Scan(&seguir)
		if seguir == "n" {
			break
		} else {
			slice1 = append(slice1, slice1[i])
			i++
		}
	}
 
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ayuda con Struct

Publicado por Yamil Bracho (2 intervenciones) el 25/07/2023 17:23:30
El problema es que no estas reservando espacio para el slice. El var solo declara la variable pero no le reserva espacio. te puede quedara algo como :
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
35
36
37
38
39
40
41
42
package main
 
import "fmt"
 
type Caminata struct {
	numero int
	nombre string
	edad   int
	tiempo int
	//categoria string
}
 
func main() {
	var slice1 []Caminata = make([]Caminata, 0)
	var seguir string = "S"
 
	for {
 
		data := Caminata{}
		fmt.Print("Numero de dorsal: ")
		fmt.Scan(&data.numero)
 
		fmt.Print("Nombre del atleta: ")
		fmt.Scan(&data.nombre)
 
		fmt.Print("Edad: ")
		fmt.Scan(&data.edad)
 
		fmt.Print("Tiempo en segundos: ")
		fmt.Scan(&data.tiempo)
 
		fmt.Println("Desea agregar otro atleta s/n: ")
		fmt.Scan(&seguir)
 
		slice1 = append(slice1, data)
		if seguir == "n" {
			break
		}
	}
 
	fmt.Println(slice1)
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 10
Ha disminuido 1 puesto en Go (en relación al último mes)
Gráfica de Go

Ayuda con Struct

Publicado por dario (2 intervenciones) el 27/07/2023 03:18:23
Gracias me sirvio mucho.
Salu2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar