Comment résoudre l'erreur golang : "impossible de faire référence au nom 'x' non exporté dans le package 'y'
Pendant le processus de développement utilisant golang, nous pouvons rencontrer l'erreur suivante : "impossible de faire référence au nom 'x' non exporté dans le package 'y'", cette erreur est principalement provoquée lorsque nous accédons à des variables ou des fonctions non exportées.
En golang, la casse de la première lettre des noms de variables et de fonctions détermine leur visibilité. Un identifiant est exportable si sa première lettre est une lettre majuscule ; si sa première lettre est une lettre minuscule, il n'est pas exportable. Les variables ou fonctions non exportables ne sont accessibles que dans le même package et ne sont pas directement accessibles par d'autres packages. Lorsque nous essayons d'accéder à des variables ou à des fonctions non exportées dans d'autres packages, l'erreur ci-dessus se produit.
Alors, comment résoudre ce problème ? Voici plusieurs stratégies de solution :
Exemple de code :
package y var x string // 不可导出的变量 func foo() { // 不可导出的函数 }
Code modifié :
package y var X string // 可导出的变量 func Foo() { // 可导出的函数 }
Exemple de code :
package y var x string // 不可导出的变量 func getX() string { return x }
Appel dans d'autres packages :
package main import ( "fmt" "package/y" ) func main() { x := y.getX() fmt.Println(x) }
Exemple de code :
package y type privateType struct { data int } func (p *privateType) privateMethod() { fmt.Println(p.data) } type PublicInterface interface { PublicMethod() } func CreatePrivateType() PublicInterface { return &privateType{} } func (p *privateType) PublicMethod() { p.privateMethod() }
Utilisé dans d'autres packages :
package main import ( "package/y" ) func main() { p := y.CreatePrivateType() p.PublicMethod() // 可以调用 p.privateMethod() // 无法调用,报错 }
Grâce aux solutions ci-dessus, nous pouvons résoudre l'erreur golang : "ne peut pas faire référence au nom 'x' non exporté dans le package 'y'". Choisir la stratégie appropriée en fonction de la situation spécifique peut rendre notre code plus lisible, maintenable et améliorer la réutilisabilité du code.
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!