Definición de tipos personalizados
Parte de la sección Fundamentos del Journey de GO de Coddy — lección 94 de 109.
En Go, puedes crear tus propios tipos personalizados basados en tipos existentes. Esto le da a tu código más claridad y seguridad de tipos.
Define un tipo personalizado para la temperatura en Celsius:
type Celsius float64
func main() {
var temperature Celsius = 25.5
fmt.Printf("Temperature: %.1f°C\n", temperature)
}El resultado muestra el valor de la temperatura:
Temperature: 25.5°CLos tipos personalizados se comportan como sus tipos subyacentes, pero el compilador los trata como tipos distintos, lo que mejora la legibilidad del código y evita errores lógicos.
Desafío
PrincipianteEn este desafío, practicarás la definición de un tipo personalizado en Go. Los tipos personalizados te permiten crear tus propios tipos de datos basados en los ya existentes.
Tu tarea es definir un tipo personalizado llamado Temperature que esté basado en float64, y luego crear una variable de este tipo.
Después de definir el tipo, el programa debe imprimir el valor y el tipo de la variable de temperatura.
Hoja de referencia
Crea tipos personalizados en Go usando la palabra clave type:
type Celsius float64Los tipos personalizados se basan en tipos existentes pero el compilador los trata como tipos distintos:
type Celsius float64
func main() {
var temperature Celsius = 25.5
fmt.Printf("Temperature: %.1f°C\n", temperature)
}Los tipos personalizados mejoran la legibilidad del código y proporcionan seguridad de tipos mientras se comportan como sus tipos subyacentes.
Pruébalo tú mismo
package main
import "fmt"
// TODO: Definir un tipo personalizado llamado 'Temperature' basado en float64
func main() {
// Crear una variable de tipo Temperature con el valor 23.5
var roomTemp Temperature = 23.5
// Imprimir el valor y el tipo de roomTemp
fmt.Printf("Room temperature: %v\n", roomTemp)
fmt.Printf("Type of roomTemp: %T\n", roomTemp)
}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