Comment faire pour importer et utiliser les différents paquets du même nom dans le langage Go?
Par exemple, je veux utiliser à la fois du texte/template html et/template dans un fichier source.
Mais le code ci-dessous permet de générer des erreurs.
import (
"fmt"
"net/http"
"text/template" //template redeclared as imported package name
"html/template" //template redeclared as imported package name
)
func handler_html(w http.ResponseWriter, r *http.Request) {
t_html, err := html.template.New("foo").Parse(`{{define "T"}}Hello, {{.}}!{{end}}`)
t_text, err := text.template.New("foo").Parse(`{{define "T"}}Hello, {{.}}!{{end}}`)
}
Vous devez vous connecter pour publier un commentaire.
Lire plus à ce sujet dans la spec.
require
etimport
états, tellement mieux que toutes les autres langues que j'ai vuRéponse par Mostafa est correct, cependant cela demande quelques explications. Permettez-moi d'essayer d'y répondre.
Cela ne fonctionne pas car:
Dans ces lignes que vous tentez d'importer deux "modèle" paquets avec le même nom.
D'importation est une déclaration
Vous ne pouvez pas déclarer le même nom (terminologie: identificateur) dans le même champ d'application.
En Aller,
import
est un acte de déclaration et de son champ d'application est le fichier qui essaie d'importer les packages.Il ne fonctionne pas à cause de la même raison que vous ne pouvez pas déclarer les variables avec le même nom dans le même bloc.
C'est la raison pour laquelle cela fonctionne
Vous pouvez le vérifier sur le terrain de jeu.