Définition de types personnalisés
Fait partie de la section Fondamentaux du Journey GO de Coddy — leçon 94 sur 109.
En Go, vous pouvez créer vos propres types personnalisés basés sur des types existants. Cela apporte plus de clarté et de sécurité de type à votre code.
Définissez un type personnalisé pour la température en Celsius :
type Celsius float64
func main() {
var temperature Celsius = 25.5
fmt.Printf("Temperature: %.1f°C\n", temperature)
}Le résultat affiche la valeur de la température :
Temperature: 25.5°CLes types personnalisés se comportent comme leurs types sous-jacents, mais sont traités comme des types distincts par le compilateur, ce qui améliore la lisibilité du code et prévient les erreurs logiques.
Défi
DébutantDans ce défi, vous allez vous entraîner à définir un type personnalisé en Go. Les types personnalisés vous permettent de créer vos propres types de données basés sur des types existants.
Votre tâche consiste à définir un type personnalisé appelé Temperature qui est basé sur float64, puis à créer une variable de ce type.
Après avoir défini le type, le programme doit afficher la valeur et le type de la variable de température.
Aide-mémoire
Créez des types personnalisés en Go en utilisant le mot-clé type :
type Celsius float64Les types personnalisés sont basés sur des types existants mais sont traités comme des types distincts par le compilateur :
type Celsius float64
func main() {
var temperature Celsius = 25.5
fmt.Printf("Temperature: %.1f°C\n", temperature)
}Les types personnalisés améliorent la lisibilité du code et assurent la sécurité des types tout en se comportant comme leurs types sous-jacents.
Essayez vous-même
package main
import "fmt"
// TODO : Définir un type personnalisé appelé 'Temperature' basé sur float64
func main() {
// Créer une variable de type Temperature avec la valeur 23.5
var roomTemp Temperature = 23.5
// Afficher la valeur et le type de roomTemp
fmt.Printf("Room temperature: %v\n", roomTemp)
fmt.Printf("Type of roomTemp: %T\n", roomTemp)
}Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Fondamentaux
4Opérateurs de comparaison et logiques
Opérateurs de comparaison - Partie 1Opérateurs de comparaison - Partie 2Opérateur logique ANDOpérateur logique OROpérateur logique NOTBases de la priorité des opérateursRécapitulatif - Effectuer des comparaisons7Structures de contrôle : Les boucles
Explication de la boucle `for`Boucle For - Les basesBoucle For - Condition uniquementLe mot-clé `break`Le mot-clé `continue`Boucles imbriquéesRécapitulatif - Répéter des actions10Types composites : Tableaux
Introduction aux tableauxDéclaration de tableauxInitialisation de tableauxAccès aux éléments d'un tableauTaille d'un tableau avec `len`Itération sur les tableauxTableaux multidimensionnels13Types composites : Structures
Définition de types personnalisésCréation d'instances de structuresAccès aux champs d'une structurePointeurs vers des structuresInitialisation de structuresStructures imbriquéesStructures anonymesRécapitulatif - Structures de données personnalisées2Variables et types de données de base
Qu'est-ce qu'une variableInférence de type avec `:=` Entiers (int)Nombres à virgule flottanteBooléensChaînes de caractères (Strings)Valeurs zéroConstantesConventions de nommageRécapitulatif - Variables et types5Entrées/Sorties de base
Sortie formatéeVerbes de formatageAffichage des typesSaisie utilisateur de baseRécapitulatif - Entrées et Sorties8Fonctions
Comprendre les fonctionsDéclarer une fonctionAppeler des fonctionsParamètres de fonctionRetourner une valeur uniqueRetourner plusieurs valeursValeurs de retour nomméesBases de la portée des fonctionsRécapitulatif - Créer du code réutilisable11Types composites : Slices
Introduction aux SlicesDéclaration de littéraux de SlicesCréation de Slices avec `make`Longueur vs Capacité des SlicesAccès aux éléments d'un SliceAjout d'élémentsDécoupage de Slices/Tableaux existantsItération sur les SlicesCopie de SlicesRécapitulatif - Listes dynamiques3Opérateurs de base
Opérateurs arithmétiquesOpérateur de divisionL'opérateur moduloOpérateur d'affectationOpérateurs d'affectation augmentéeIncrémentation et décrémentationRécapitulatif - Calculs6Structure de contrôle : Les conditionnelles
L'instruction `if`Le mot-clé `else`Le mot-clé `else if`Masquage de variable dans `if`Initialisation des variablesL'instruction `switch``switch` avec expressions`switch` sans expressionLe mot-clé `fallthrough`Récapitulatif - Prendre des décisions9Pointeurs
Qu'est-ce qu'un pointeur ?Déclaration de variables pointeursL'opérateur d'adresseDéréférencement de pointeursUtiliser des pointeurs dans les fonctionsPointeurs NilRécapitulatif - Comprendre les pointeurs12Types composites : Maps
Introduction aux MapsDéclaration de littéraux de MapCréation de Maps avec `make`Ajout et mise à jour de paires clé-valeurAccès aux valeurs d'une MapVérification de l'existence d'une cléSuppression d'entrées de MapTaille d'une MapItération sur les MapsRécapitulatif - Stockage clé-valeur