Inicialización de Structs
Parte de la sección Fundamentos del Journey de GO de Coddy — lección 98 de 109.
Hay múltiples formas de inicializar structs en Go. Exploremos los métodos más comunes.
Crea una estructura con nombres de campos:
type Person struct {
name string
age int
}
func main() {
// Initialize with field names
person1 := Person{name: "Alice", age: 30}
fmt.Println(person1)
}La salida muestra nuestra estructura inicializada:
{Alice 30}También puedes inicializar una estructura sin los nombres de los campos, pero debes proporcionar los valores en orden:
person2 := Person{"Bob", 25}
fmt.Println(person2)Resultado:
{Bob 25}Crea un struct vacío con valores cero:
person3 := Person{}
fmt.Println(person3)Resultado:
{ 0}Desafío
PrincipianteEn este desafío, practicarás la inicialización de un struct en Go. Hemos definido un struct Person con campos para el nombre, la edad y si la persona está empleada.
Tu tarea es inicializar una nueva instancia del struct Person con la siguiente información:
- Name: "Alice"
- Age: 28
- IsEmployed: true
Luego, imprimiremos la información sobre esta persona.
Hoja de referencia
Hay múltiples formas de inicializar structs en Go:
Inicializar con nombres de campos:
person1 := Person{name: "Alice", age: 30}Inicializar sin nombres de campos (los valores deben estar en orden):
person2 := Person{"Bob", 25}Crear un struct vacío con valores cero:
person3 := Person{}Pruébalo tú mismo
package main
import "fmt"
// Definición de la estructura Person
type Person struct {
Name string
Age int
IsEmployed bool
}
func main() {
// TODO: Inicializar una estructura Person con nombre "Alice", edad 28, e isEmployed true
// Usar ya sea los nombres de los campos o la sintaxis de literal de estructura
var alice Person
// Imprimir la información de la persona
fmt.Printf("Name: %s\n", alice.Name)
fmt.Printf("Age: %d\n", alice.Age)
fmt.Printf("Employed: %t\n", alice.IsEmployed)
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Operadores de comparación y lógicos
Operadores de comparación - Parte 1Operadores de comparación - Parte 2Operador lógico ANDOperador lógico OROperador lógico NOTConceptos básicos de precedencia de operadoresResumen: Realizar comparaciones7Flujo de control: Bucles
Explicación del bucle `for`Bucle `for` - BásicoBucle `for` - Solo condiciónLa palabra clave `break`La palabra clave `continue`Bucles anidadosResumen - Repetición de acciones10Tipos compuestos: Arrays
Introducción a los ArraysDeclaración de ArraysInicialización de ArraysAcceso a elementos de un ArrayLongitud del Array con `len`Iterar sobre ArraysArrays multidimensionales13Tipos compuestos: Structs
Definición de tipos personalizadosCreación de instancias de StructsAcceso a campos de StructsPunteros a StructsInicialización de StructsStructs embebidosStructs anónimosResumen - Estructuras de datos personalizadas2Variables y tipos de datos básicos
¿Qué es una variable?Inferencia de tipos con `:=`Enteros (int)Números de punto flotanteBooleanosStringsValores ceroConstantesConvenciones de nomenclaturaResumen - Variables y tipos5Entrada y salida básica
Salida con formatoVerbos de formatoImpresión de tiposObtener entrada básica del usuarioResumen: Entrada y salida8Funciones
Comprendiendo las funcionesDeclaración de una funciónLlamada a funcionesParámetros de funciónRetorno de un solo valorRetorno de múltiples valoresValores de retorno con nombreConceptos básicos del alcance de las funcionesResumen: Creando código reutilizable3Operadores básicos
Operadores aritméticosOperador de divisiónEl operador móduloOperador de asignaciónOperadores de asignación compuestaIncremento y decrementoResumen - Cálculos6Flujo de control: Condicionales
La sentencia `if`La palabra clave `else`La palabra clave `else if`Sombreado de variables en `if`Inicialización de variablesLa sentencia `switch``switch` con expresiones`switch` sin expresiónLa palabra clave `fallthrough`Resumen: Toma de decisiones