06 - Structs en Go

Hola, en este post mostrare que son los Structs y como usarlos.
Antes de comenzar, lo se, hace 2 meses dije que no continuaría el curso, pero tengo 2 razones para terminarlo :

  • Estoy en vacaciones, y no tengo nada que hacer, asi que porque no terminar este curso?
  • El poderoso, dios, creador de S-SUN y de Lima, @erickcraftstudios, me sugirió terminar este curso, y obvio, no puedo decirle que no al mismisimo creador de S-SUN :v

Que son las structs?

struct, significa estructura, y sirve para guardar varios datos bajo un solo nombre. Puedes imaginarlo como un tipo de dato personalizado que contiene variables que tu asignaste.

¿Como utilizarlo? (Con ejemplo)

Bueno, imaginemos que… estamos haciendo un videojuego de carreras!, vamos hacer un struct que contenga la información del vehículo, y posteriormente imprimirlo.

El codigo esta completamente documentado, y creo que, explica claramente como utilizarlo

package main

import "fmt" // para usar Printf, la struct funciona sin fmt perfectamente

// Declaracion de la struct
type Carro struct { // No es regla, pero es recomendable que el nombre de los structs empiece con mayuscula
	Motor      string
	Velocidad  int
	Modelo     string
	Suspencion int // Honestamente, no se que es una suspencion, asi que esto es como "cuanto rebota"
	Año        int
	Precio     int
}

func main() {
	var BMWi8 Carro                 // Aqui, declaramos la variable BMW I8, pero, como "tipo de dato" indicamos Carro
	BMWi8.Motor = "1499cc I3 turbo" // No se de carros, esto es segun google :P
	BMWi8.Velocidad = 250           // 250 KM/H
	BMWi8.Modelo = "BMW I8"
	BMWi8.Suspencion = 2 // dato inventado
	BMWi8.Año = 2014
	BMWi8.Precio = 640000 // 640 mil, segun google :P

	fmt.Printf("Tu carro es un %s con un motor %s y una velocidad de %d, tiene una suspencion de %d, salio en el año %d y cuesta un total de %d\n", BMWi8.Modelo, BMWi8.Motor, BMWi8.Velocidad, BMWi8.Suspencion, BMWi8.Año, BMWi8.Precio)

	var Tesla Carro // Otro ejemplo
	Tesla.Motor = "Motor Electrico"
	Tesla.Velocidad = 332 // 332KM/H
	Tesla.Modelo = "Tesla Model 3"
	Tesla.Suspencion = 3 // De nuevo, inventado
	Tesla.Año = 2016
	Tesla.Precio = 500000 // 500K

	fmt.Printf("\nTu carro es un %s con un motor %s y una velocidad de %d, tiene una suspencion de %d, salio en el año %d y cuesta un total de %d\n", Tesla.Modelo, Tesla.Motor, Tesla.Velocidad, Tesla.Suspencion, Tesla.Año, Tesla.Precio)

}

(Perdón por no enseñar a usar printf antes, esto puede servirte si no lo has usado nunca(Aunque esta en ingles, lamentablemente)

Después de correrlo, la salida esperada debería ser

Tu carro es un BMW I8 con un motor 1499cc I3 turbo y una velocidad de 250, tiene una suspencion de 2, salio en el año 2014 y cuesta un total de 640000

Tu carro es un Tesla Model 3 con un motor Motor Electrico y una velocidad de 332, tiene una suspencion de 3, salio en el año 2016 y cuesta un total de 500000

Como siempre, gracias por leerme!

2 Me gusta

de:
S-SUN, KellyBootloader, ErickBinaryFormat, Lima/Lima++, Lima (version de Turbowarp), ErickCompiler, ErickAssembly y makelima (obsoleto por ErickCompiler)

YOYLE

1 me gusta