


Maîtriser les outils de ligne de commande et les scripts du langage Go
En tant que langage de programmation en développement rapide, l'une des caractéristiques du langage Go est sa prise en charge et sa dépendance à l'égard des outils de ligne de commande. Les outils de ligne de commande sont un type de programme qui s'adresse directement aux utilisateurs. Ils peuvent implémenter des fonctions riches via de simples instructions de ligne de commande. Le langage Go fournit une API simple et puissante pour aider les développeurs à créer facilement des outils de ligne de commande et des programmes de script efficaces et faciles à entretenir. Cet article explique comment utiliser le langage Go pour écrire des outils et des scripts de ligne de commande rationalisés et efficaces.
1. Analyse des paramètres de ligne de commande
La partie la plus importante de l'outil de ligne de commande est l'analyse des paramètres de ligne de commande. Le package flag est fourni dans le langage Go pour gérer l'analyse des paramètres de ligne de commande. Un exemple est le suivant :
package main import ( "flag" "fmt" ) var nFlag = flag.Bool("n", false, "print line numbers") var sFlag = flag.String("s", " ", "separator") func main() { flag.Parse() fmt.Println("nFlag:", *nFlag) fmt.Println("sFlag:", *sFlag) args := flag.Args() for i, arg := range args { fmt.Printf("arg[%d]: %s ", i, arg) } }
Dans le code ci-dessus, nous définissons deux variables d'indicateur de ligne de commande, nFlag et sFlag. Le premier paramètre est le nom de l'indicateur, le deuxième paramètre est la valeur par défaut et le troisième paramètre est l'explication. Dans la fonction principale, exécutez d'abord la fonction flag.Parse() et obtenez la valeur du drapeau via nFlag et sFlag, et obtenez tous les paramètres non-flag via flag.Args().
2. Créer des outils de ligne de commande
Il existe de nombreuses façons de créer des outils de ligne de commande en langage Go, parmi lesquelles le package cobra est le plus couramment utilisé. Cobra est une bibliothèque puissante qui peut nous aider à créer rapidement des outils de ligne de commande efficaces et utiles.
Illustrons avec un exemple simple :
package main import ( "fmt" "github.com/spf13/cobra" ) func main() { var rootCmd = &cobra.Command{ Use: "app", Short: "Brief description of your application", Long: "A longer description that spans multiple lines and likely contains examples and usage of using your application.", Run: func(cmd *cobra.Command, args []string) { fmt.Println("Hello, World!") }, } if err := rootCmd.Execute(); err != nil { fmt.Println(err) } }
Dans le code ci-dessus, nous définissons d'abord une variable rootCmd, le type de variable est &cobra.Command, puis définissons les propriétés telles que Use, Short, Long et Run. Parmi eux, l'attribut Use spécifie le nom de la commande, l'attribut Short est une brève description de l'outil de ligne de commande, l'attribut Long est une description détaillée de l'outil de ligne de commande et l'attribut Run est l'opération spécifique effectuée par la ligne de commande. .
3. Écriture de scripts
En plus des outils de ligne de commande, nous pouvons également écrire des programmes de script simples via le langage Go pour le traitement de tâches spécifiques. Par rapport aux outils de ligne de commande, les programmes de script peuvent s'exécuter plus librement. Généralement, il n'est pas nécessaire de générer un fichier de programme séparé. Il vous suffit d'enregistrer le code sous forme de fichier .go. Ce qui suit est un exemple de script simple pour compter le nombre d'occurrences de chaque mot dans un morceau de texte :
package main import ( "bufio" "fmt" "os" "strings" ) func main() { freq := make(map[string]int) scanner := bufio.NewScanner(os.Stdin) scanner.Split(bufio.ScanWords) for scanner.Scan() { word := strings.ToLower(scanner.Text()) freq[word]++ } if err := scanner.Err(); err != nil { fmt.Fprintln(os.Stderr, "reading standard input:", err) } for w, c := range freq { fmt.Printf("%s: %d ", w, c) } }
Dans le code ci-dessus, nous avons d'abord créé une variable de carte vide freq pour compter le nombre d'occurrences de chaque mot. Ensuite, un scanner est créé via bufio.NewScanner(os.Stdin) pour analyser le flux d'entrée standard (c'est-à-dire la saisie au clavier) ligne par ligne. Utilisez freq[word]++ pour incrémenter le nombre d'occurrences d'un mot et affichez le nombre d'occurrences de chaque mot à la fin.
Résumé
Cet article présente l'implémentation d'outils de ligne de commande et de scripts dans le langage Go. Grâce au package flag et au package cobra, vous pouvez facilement analyser les paramètres de ligne de commande et créer des outils de ligne de commande efficaces et utiles. Grâce aux exemples ci-dessus, nous pouvons constater que le langage Go rend les outils de ligne de commande et les scripts extrêmement simples grâce à son API simple et puissante. Pour les développeurs qui ont besoin d'utiliser fréquemment des outils de ligne de commande, la maîtrise des outils de ligne de commande et des méthodes de script du langage Go les aidera à obtenir deux fois le résultat avec la moitié de l'effort.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds





La bibliothèque utilisée pour le fonctionnement du numéro de point flottante dans le langage go présente comment s'assurer que la précision est ...

Problème de threading de file d'attente dans Go Crawler Colly explore le problème de l'utilisation de la bibliothèque Crawler Crawler dans le langage Go, les développeurs rencontrent souvent des problèmes avec les threads et les files d'attente de demande. � ...

La différence entre l'impression de chaîne dans le langage go: la différence dans l'effet de l'utilisation de fonctions println et string () est en Go ...

Le problème de l'utilisation de Redessstream pour implémenter les files d'attente de messages dans le langage GO consiste à utiliser le langage GO et redis ...

Deux façons de définir les structures dans le langage GO: la différence entre les mots clés VAR et le type. Lorsque vous définissez des structures, GO Language voit souvent deux façons d'écrire différentes: d'abord ...

Que dois-je faire si les étiquettes de structure personnalisées à Goland ne sont pas affichées? Lorsque vous utilisez Goland pour le développement du langage GO, de nombreux développeurs rencontreront des balises de structure personnalisées ...

Quelles bibliothèques de GO sont développées par de grandes entreprises ou des projets open source bien connus? Lors de la programmation en Go, les développeurs rencontrent souvent des besoins communs, ...

Lorsque vous utilisez SQL.Open, pourquoi le DSN ne signale-t-il pas une erreur? En langue go, sql.open ...
