Maison > développement back-end > Golang > le corps du texte

Maîtriser les outils de ligne de commande et les scripts du langage Go

PHPz
Libérer: 2023-11-30 08:20:13
original
1342 Les gens l'ont consulté

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)
    }
}
Copier après la connexion

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)
    }
}
Copier après la connexion

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)
    }
}
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!