Maison > développement back-end > Golang > Utilisation de LDFLAGS pour initialiser des variables de type non basiques dans GoLang

Utilisation de LDFLAGS pour initialiser des variables de type non basiques dans GoLang

王林
Libérer: 2024-02-11 20:36:08
avant
438 Les gens l'ont consulté

在 GoLang 中使用 LDFLAGS 初始化非基本类型变量

GoLang est un langage de programmation puissant avec une méthode d'initialisation unique lorsqu'il s'agit de variables de type non basiques. Cet article explique comment utiliser LDFLAGS pour initialiser des variables de type non basiques dans GoLang. LDFLAGS est un paramètre du compilateur Go et peut être transmis en définissant des variables d'environnement. Avec LDFLAGS, nous pouvons fournir des valeurs par défaut pour les variables de type non basiques au moment de la compilation, simplifiant ainsi la logique du code et améliorant l'efficacité du développement. Examinons ensuite la méthode de mise en œuvre spécifique.

Contenu de la question

J'essaie d'initialiser une variable au moment de la construction en utilisant l'option ldflags dans go build.

Ce code fonctionne bien :

var version

func printVersion() {
    fmt.Printf(version) // prints the corresponding value
}
Copier après la connexion
<code>go build -ldflags="-X $(ROOT)/pkg/info.version=123"
</code>
Copier après la connexion

Mais je n'arrive pas à trouver un moyen d'initialiser les variables de ma propre structure définie. Je veux dire, ça ne semble pas fonctionner :

type VersionInfo struct {
    version string
}

var versionInfo VersionInfo

func printVersion() {
    fmt.Printf(versionInfo.version)
}
Copier après la connexion
<code>go build -ldflags="-X $(ROOT)/pkg/info.versionInfo.version=123"
</code>
Copier après la connexion

Je ne trouve rien traitant de ce problème dans la documentation officielle. Des idées?

Solution de contournement

Selon la documentation, il semble qu'il ne soit pas possible de le faire via les indicateurs de l'éditeur de liens. Le type de la variable doit être string.

Source : //m.sbmmt.com/link/0a97e4f47718632c556e9ac591d5f3c2 p>

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!

source:stackoverflow.com
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