Menu
Coddy logo textTech

Alias dei pacchetti

Fa parte della sezione Logica e flusso del percorso GO di Coddy. Lezione 54 di 68.

A volte devi assegnare a un pacchetto importato un nome diverso all'interno del tuo file. Questo si chiama aliasing dei pacchetti e Go lo rende semplice grazie a una sintassi intuitiva.

Per creare un alias, specifica il nuovo nome prima del percorso del pacchetto nella tua istruzione di importazione:

import f "fmt"

Ora, invece di usare fmt.Println(), puoi usare la forma più breve f.Println(). Questo è particolarmente utile in due situazioni: quando hai nomi di package molto lunghi che vuoi abbreviare oppure quando devi evitare conflitti di nomi tra package che hanno lo stesso nome.

package main

import f "fmt"

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

Gli alias dei pacchetti ti offrono flessibilità nel modo in cui fai riferimento ai pacchetti importati, rendendo il codice più leggibile e aiutandoti a gestire scenari di importazione complessi.

challenge icon

Sfida

Facile

Crea un programma che dimostri l’uso degli alias per i pacchetti, importando più pacchetti con alias personalizzati e usandoli per eseguire varie operazioni. Questa sfida metterà alla prova la tua capacità di creare alias significativi per i pacchetti e di usarli in modo coerente in tutto il programma.

Riceverai due input:

  • Una stringa contenente definizioni di alias per i pacchetti nel formato "package1:alias1,package2:alias2,package3:alias3" (ad es., "fmt:output,strings:text,strconv:convert")
  • Una stringa contenente operazioni da eseguire nel formato "operation1:data1|operation2:data2|operation3:data3" (ad es., "print:Hello World|upper:go programming|parse:42")

Il tuo compito è:

  1. Analizzare il primo input dividendolo in corrispondenza delle virgole per ottenere le singole definizioni di alias per i pacchetti
  2. Per ogni definizione di alias, dividerla in corrispondenza dei due punti per ottenere il nome originale del pacchetto e il relativo alias
  3. Importare i pacchetti usando gli alias specificati:
    • Importare fmt con l’alias fornito
    • Importare strings con l’alias fornito
    • Importare strconv con l’alias fornito
  4. Mostrare le informazioni sulla configurazione degli alias:
    • "=== PACKAGE ALIAS DEMONSTRATION ==="
    • "Setting up package aliases:"
    • Per ogni alias: "- [original_package] aliased as '[alias]'"
  5. Analizzare il secondo input dividendolo in corrispondenza delle barre verticali per ottenere le singole operazioni
  6. Per ogni operazione, dividerla in corrispondenza dei due punti per ottenere il tipo di operazione e i dati
  7. Mostrare l’intestazione delle operazioni: "Performing operations using aliases:"
  8. Per ogni operazione, eseguire l’azione corrispondente usando i pacchetti con alias:
    • Per le operazioni "print": usare l’alias di fmt per stampare "[fmt_alias].Println: [data]"
    • Per le operazioni "upper": usare l’alias di strings per convertire i dati in maiuscolo e stampare "[strings_alias].ToUpper: [uppercase_data]"
    • Per le operazioni "lower": usare l’alias di strings per convertire i dati in minuscolo e stampare "[strings_alias].ToLower: [lowercase_data]"
    • Per le operazioni "parse": usare l’alias di strconv per analizzare i dati come intero e stampare "[strconv_alias].Atoi: [parsed_number]"
    • Per le operazioni "format": usare l’alias di fmt per formattare e stampare "[fmt_alias].Sprintf: Formatted -> [data]"
  9. Contare e mostrare le statistiche sulle operazioni:
    • "Operation Summary:"
    • "Total operations performed: [total_operations]"
    • "Packages used: [comma_separated_list_of_aliases_used]"
  10. Mostrare i vantaggi dell’uso degli alias:
    • "Benefits demonstrated:"
    • "- Shorter function calls using aliases"
    • "- Improved code readability"
    • "- Avoided potential naming conflicts"
  11. Mostrare il messaggio di completamento: "Package aliasing demonstration completed successfully"

Usa il pacchetto strings per dividere le stringhe di input e manipolare il testo, il pacchetto strconv per convertire le stringhe in interi e il pacchetto fmt per l’output formattato. Ricorda di usare gli alias in modo coerente in tutto il programma invece dei nomi originali dei pacchetti. Questa sfida dimostra come l’uso degli alias per i pacchetti possa rendere il codice più conciso e leggibile, evitando al contempo conflitti tra nomi.

Provalo tu

package main

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

func main() {
	// Leggi l'input usando bufio.Scanner per gestire correttamente gli spazi
	scanner := bufio.NewScanner(os.Stdin)
	
	scanner.Scan()
	aliasInput := scanner.Text()
	
	scanner.Scan()
	operationsInput := scanner.Text()
	
	// Analizza le definizioni degli alias
	aliasDefinitions := s.Split(aliasInput, ",")
	
	// Analizza le operazioni
	operations := s.Split(operationsInput, "|")
	
	// TODO: Scrivi il tuo codice qui sotto
	// 1. Analizza ogni definizione di alias per ottenere il nome del pacchetto e l'alias (controlla le lunghezze)
	// 2. Mostra l'intestazione della dimostrazione degli alias dei pacchetti e le informazioni di configurazione
	// 3. Elabora ogni operazione usando il pacchetto con l'alias appropriato
	// 4. Conta le operazioni e tieni traccia degli alias usati (mantieni l'ordine o ordinali)
	// 5. Mostra il riepilogo delle operazioni e i vantaggi
	
	// Ricorda di usare gli alias in modo coerente in tutto il programma
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore Go online