7
votes

Variables globales / Obtenez l'argument de ligne de commande et imprimez-le

Cela peut sembler stupide, mais comment définir une variable globale en déplacement? const myglobalvariable = "salut là-bas!" code> ne fonctionne pas vraiment ...

Je veux juste obtenir l'argument de la ligne de commande et après cela, je veux l'imprimer. Je fais cela à l'aide de ce code SNIPPET: P>

package main

import (
    "flag"
    "fmt"
)

func main() {
    gettext();
    fmt.Println(text)
}

func gettext() {
    flag.Parse()
    text := flag.Args()
    if len(text) < 1 {
        fmt.Println("Please give me some text!")
    }
}


0 commentaires

4 Réponses :


-1
votes

Pourquoi avez-vous besoin d'une variable globale? Par exemple,

package main

import (
    "flag"
    "fmt"
)

func main() {
    text := gettext()
    fmt.Println(text)
}

func gettext() []string {
    flag.Parse()
    text := flag.Args()
    if len(text) < 1 {
        fmt.Println("Please give me some text!")
    }
    return text
}


1 commentaires

Je pense que cette réponse a été votée à la baisse parce qu'elle a donné à l'op de quoi ils avaient besoin, pas ce qu'ils ont demandé :)



30
votes

Je vois au moins deux questions ici, peut-être trois.

  1. Comment déclarez-vous une variable globale?
  2. Comment déclarez-vous une constante globale?
  3. Comment faites-vous paier les options de ligne de commande et les arguments?

    J'espère que le code ci-dessous le démontre de manière utile. Le package de drapeau était l'un des premiers forfaits que je devais me couper les dents. À l'époque, ce n'était pas évident, bien que la documentation s'améliore.

    FYI, au moment de cette écriture, j'utilise http://weekly.golang.org comme référence. Le site principal est beaucoup trop obsolète. xxx


0 commentaires

-2
votes

Voir comment gofmt , Godoc et autres poignée la même chose.


1 commentaires

C'est une réponse vraiment paresseuse. Vous n'avez même pas lié à un fichier spécifique, mais plutôt à un repo avec des milliers de fichiers dans eux chacun. Les exemples du monde réel sont ici: Github.com/golang/golang/ Go / BLOB / MASTER / SRC / CRYPTO / DSA / DSA.GO



20
votes

La chose la plus proche à une variable globale en déplacement est un paquet variable. Vous définissez une liste d'arguments de ligne de commande xxx xxx

assis dans une variable d'emballage, OS.ARGS, vous attendant à y accéder. Vous n'avez même pas besoin du package de drapeau. xxx


0 commentaires