Fondamenti di Cobra
Comando radice, Run, Args e generazione dell'help
Fondamenti di Cobra è una lezione Go Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Go Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Go Academy include 4 lezioni in totale.
Che cos'è Cobra?
Cobra è la libreria Go più diffusa per creare applicazioni CLI. Fornisce comandi, flag, sottocomandi, generazione della guida, completamento della shell e convalida degli argomenti.
Installare Cobra
Aggiunga cobra come dipendenza e, facoltativamente, utilizzi il generatore CLI:
go get github.com/spf13/cobra
// Optional: cobra-cli for scaffolding
go install github.com/spf13/cobra-cli@latest
cobra-cli init myappComando radice
Ogni applicazione Cobra ha un comando radice. Lo definisca con Use, una descrizione Short e una funzione Run:
var rootCmd = &cobra.Command{
Use: "myapp",
Short: "My awesome CLI",
Run: func(cmd *cobra.Command, args []string) {
fmt.Println("Hello from root!")
},
}
func main() { rootCmd.Execute() }Struttura cobra.Command
Campi principali: Use (nome del comando + sintesi), Short (descrizione su una riga), Long (guida dettagliata), Run (esegue il comando), RunE (restituisce un errore).
RunE per propagare gli errori
Utilizzi RunE invece di Run per restituire gli errori. Cobra stampa automaticamente l'errore e termina con un codice diverso da zero.
var rootCmd = &cobra.Command{
RunE: func(cmd *cobra.Command, args []string) error {
return doWork()
},
}Aggiungere sottocomandi
Crei i sottocomandi come valori cobra.Command separati e li aggiunga alla radice con AddCommand:
var serveCmd = &cobra.Command{
Use: "serve",
Short: "Start the server",
RunE: runServe,
}
func init() { rootCmd.AddCommand(serveCmd) }Struttura del progetto Cobra
Struttura convenzionale: una directory cmd/ con un file per ogni sottocomando, oltre a root.go. main.go chiama solo cmd.Execute().
cmd/
root.go // rootCmd definition
serve.go // serveCmd
migrate.go // migrateCmd
main.goConvalida degli argomenti
Utilizzi i validatori integrati come cobra.ExactArgs e MinimumNArgs oppure una ValidArgsFunction personalizzata:
var cmd = &cobra.Command{
Args: cobra.ExactArgs(2),
RunE: func(cmd *cobra.Command, args []string) error {
fmt.Println(args[0], args[1])
return nil
},
}Guida generata automaticamente
Cobra genera automaticamente --help / -h per ogni comando e un sottocomando help. Il testo deriva da Use, Short, Long e dai flag.
Completamento della shell
Cobra genera immediatamente script di completamento per bash, zsh, fish e PowerShell tramite rootCmd.GenBashCompletion o il sottocomando integrato completion.
Integrazione con Viper
Combini Cobra con Viper per gestire la configurazione: i flag definiti con Cobra vengono associati alle chiavi di Viper, così i valori possono provenire dai flag, dalle variabili d'ambiente o dai file di configurazione.
Verifica rapida
Qual è la differenza tra cobra.Command.Run e RunE?
Riepilogo: fondamenti di Cobra
Punti chiave:
- cobra.Command con Use/Short/RunE è l'elemento fondamentale
- rootCmd.AddCommand(subCmd) per creare comandi gerarchici
- cobra.ExactArgs/MinimumNArgs per convalidare gli argomenti
- Guida e completamento vengono generati automaticamente
Domande Frequenti
La lezione «Fondamenti di Cobra» è gratuita?
Sì — il testo completo di «Fondamenti di Cobra» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Go Academy, passa a CoddyKit PRO. Il corso Go Academy include 4 lezioni in totale.
Cosa imparerò in «Fondamenti di Cobra»?
Comando radice, Run, Args e generazione dell'help Eserciti Go Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Go Academy?
Non è richiesta alcuna esperienza precedente. Go Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.
Quanto tempo richiede la lezione «Fondamenti di Cobra»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Go Academy?
Sì. Ogni lezione Go Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.