Menu
Coddy logo textTech

Aliasing de Package

Fait partie de la section Logique & Flux du Journey GO de Coddy. Leçon 54 sur 68.

Parfois, vous devez donner à un package importé un nom différent dans votre fichier. C’est ce qu’on appelle un alias de package, et Go simplifie cela grâce à une syntaxe claire.

Pour créer un alias, vous indiquez le nouveau nom avant le chemin du package dans votre instruction d’importation :

import f "fmt"

Maintenant, au lieu d'utiliser fmt.Println(), vous pouvez utiliser la version plus courte f.Println(). C'est particulièrement utile dans deux situations : lorsque vous avez des noms de packages très longs que vous souhaitez raccourcir, ou lorsque vous devez éviter les collisions de noms entre des packages qui ont le même nom.

package main

import f "fmt"

func main() {
    f.Println("Hello with an alias!")
}

L’alias de package vous offre de la flexibilité dans la manière de référencer les packages importés, ce qui rend votre code plus lisible et vous aide à gérer des scénarios d’importation complexes.

challenge icon

Défi

Facile

Créez un programme qui montre l’utilisation d’alias de packages en important plusieurs packages avec des alias personnalisés et en les utilisant pour effectuer diverses opérations. Ce défi mettra à l’épreuve votre capacité à créer des alias pertinents pour les packages et à les utiliser de manière cohérente dans tout votre programme.

Vous recevrez deux entrées :

  • Une chaîne contenant les définitions d’alias de packages au format "package1:alias1,package2:alias2,package3:alias3" (par exemple, "fmt:output,strings:text,strconv:convert")
  • Une chaîne contenant les opérations à effectuer au format "operation1:data1|operation2:data2|operation3:data3" (par exemple, "print:Hello World|upper:go programming|parse:42")

Votre tâche consiste à :

  1. Analyser la première entrée en la divisant sur les virgules afin d’obtenir les définitions individuelles des alias de packages
  2. Pour chaque définition d’alias, la diviser sur les deux-points afin d’obtenir le nom du package d’origine et son alias
  3. Importer les packages en utilisant les alias spécifiés :
    • Importer fmt avec l’alias fourni
    • Importer strings avec l’alias fourni
    • Importer strconv avec l’alias fourni
  4. Afficher les informations de configuration des alias :
    • "=== PACKAGE ALIAS DEMONSTRATION ==="
    • "Setting up package aliases:"
    • Pour chaque alias : "- [original_package] aliased as '[alias]'"
  5. Analyser la seconde entrée en la divisant sur les barres verticales afin d’obtenir les opérations individuelles
  6. Pour chaque opération, la diviser sur les deux-points afin d’obtenir le type d’opération et les données
  7. Afficher l’en-tête des opérations : "Performing operations using aliases:"
  8. Pour chaque opération, effectuer l’action correspondante en utilisant les packages avec alias :
    • Pour les opérations "print" : utiliser l’alias de fmt pour afficher "[fmt_alias].Println: [data]"
    • Pour les opérations "upper" : utiliser l’alias de strings pour convertir les données en majuscules et afficher "[strings_alias].ToUpper: [uppercase_data]"
    • Pour les opérations "lower" : utiliser l’alias de strings pour convertir les données en minuscules et afficher "[strings_alias].ToLower: [lowercase_data]"
    • Pour les opérations "parse" : utiliser l’alias de strconv pour analyser les données comme un entier et afficher "[strconv_alias].Atoi: [parsed_number]"
    • Pour les opérations "format" : utiliser l’alias de fmt pour formater et afficher "[fmt_alias].Sprintf: Formatted -> [data]"
  9. Compter et afficher les statistiques des opérations :
    • "Operation Summary:"
    • "Total operations performed: [total_operations]"
    • "Packages used: [comma_separated_list_of_aliases_used]"
  10. Afficher les avantages des alias :
    • "Benefits demonstrated:"
    • "- Shorter function calls using aliases"
    • "- Improved code readability"
    • "- Avoided potential naming conflicts"
  11. Afficher le message de fin : "Package aliasing demonstration completed successfully"

Utilisez le package strings pour diviser les chaînes d’entrée et manipuler le texte, le package strconv pour convertir les chaînes en entiers, et le package fmt pour la sortie formatée. N’oubliez pas d’utiliser les alias de manière cohérente dans tout votre programme au lieu des noms de packages d’origine. Ce défi montre comment l’utilisation d’alias de packages peut rendre votre code plus concis et plus lisible tout en évitant les conflits de noms.

Essayez vous-même

package main

import (
	"bufio"
	f "fmt"
	"os"
	"sort"
	c "strconv"
	s "strings"
)

func main() {
	// Lire l'entrée en utilisant bufio.Scanner pour gérer correctement les espaces
	scanner := bufio.NewScanner(os.Stdin)
	
	scanner.Scan()
	aliasInput := scanner.Text()
	
	scanner.Scan()
	operationsInput := scanner.Text()
	
	// Analyser les définitions d'alias
	aliasDefinitions := s.Split(aliasInput, ",")
	
	// Analyser les opérations
	operations := s.Split(operationsInput, "|")
	
	// TODO: Écrivez votre code ci-dessous
	// 1. Analyser chaque définition d'alias pour obtenir le nom du paquet et l'alias (vérifier les longueurs)
	// 2. Afficher l'en-tête de démonstration de l'alias du paquet et les informations de configuration
	// 3. Traiter chaque opération en utilisant le paquet aliasé approprié
	// 4. Compter les opérations et suivre quels alias ont été utilisés (maintenir l'ordre ou trier)
	// 5. Afficher le résumé des opérations et les avantages
	
	// N'oubliez pas d'utiliser les alias de manière cohérente tout au long de votre programme
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logique & Flux

Entraînez-vous par vous-même : Compilateur Go en ligne