Maison > développement back-end > Golang > Comment puis-je appeler une fonction de package dans Go sans utiliser le préfixe du package ?

Comment puis-je appeler une fonction de package dans Go sans utiliser le préfixe du package ?

Barbara Streisand
Libérer: 2024-11-02 03:02:30
original
589 Les gens l'ont consulté

How can I call a package function in Go without using the package prefix?

Invocation d'une fonction de package sans préfixe de package

Dans Go, l'importation d'un package copie effectivement ses identifiants exportés dans la portée du package d'importation. Cependant, il existe des cas où l'on peut souhaiter accéder aux fonctions du package sans utiliser le nom de son package comme préfixe. Cette question explore différentes méthodes pour y parvenir.

Une approche est la technique de « l'importation de points ». La spécification Go indique que l'utilisation d'un point (.) Sans nom de package importe tous les identifiants exportés de ce package dans la portée du fichier du package actuel. Cela permet un accès direct aux fonctions importées sans préfixe.

<code class="go">package main

import . "fmt" // import all exported identifiers from "fmt"

func main() {
    Println("hey there")
}</code>
Copier après la connexion

Cependant, cette technique est déconseillée dans la communauté Go car elle peut rendre le code plus difficile à lire en masquant la source d'un identifiant.

Alternativement, on peut déclarer une variable au niveau du package faisant référence à la fonction souhaitée. Cette approche consiste à importer le package et à déclarer une variable contenant une référence à la fonction.

<code class="go">package main

import (
    "fmt"
)

var Println = fmt.Println // declare a package-level variable referencing fmt.Println

func main() {
    Println("Hello, playground")
}</code>
Copier après la connexion

Enfin, l'alias de type peut être utilisé pour faire référence aux types déclarés dans les packages importés.

<code class="go">package main

import (
    "fmt"
)

type ScanState = fmt.ScanState // type alias fmt.ScanState

func main() {
    // use ScanState as a type without the "fmt." prefix
}</code>
Copier après la connexion

Bien que ces méthodes permettent d'éviter de préfixer les noms de packages lors de l'appel de fonctions, il est important de noter que la communauté Go encourage généralement la dénomination explicite et évite l'importation de points.

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: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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal