Maison  >  Article  >  développement back-end  >  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

王林
王林avant
2024-02-11 20:36:08343parcourir

在 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
}
<code>go build -ldflags="-X $(ROOT)/pkg/info.version=123"
</code>

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)
}
<code>go build -ldflags="-X $(ROOT)/pkg/info.versionInfo.version=123"
</code>

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 : https://www.php.cn/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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer