La respuesta de Mostafa es correcta, sin embargo, requiere alguna explicación. Déjame intentar responderlo.
Su código de ejemplo no funciona porque está intentando importar dos paquetes con el mismo nombre, que es: "plantilla".
import "html/template" // imports the package as `template`
import "text/template" // imports the package as `template` (again)
Importar es una declaración de declaración:
No puede declarar el mismo nombre ( terminología: identificador ) en el mismo ámbito.
En Go, import
hay una declaración y su alcance es el archivo que está tratando de importar esos paquetes.
No funciona debido a la misma razón por la que no puede declarar variables con el mismo nombre en el mismo bloque.
El siguiente código funciona:
package main
import (
t "text/template"
h "html/template"
)
func main() {
t.New("foo").Parse(`{{define "T"}}Hello, {{.}}!{{end}}`)
h.New("foo").Parse(`{{define "T"}}Hello, {{.}}!{{end}}`)
}
El código anterior proporciona dos nombres diferentes a los paquetes importados con el mismo nombre. Por lo tanto, ahora hay dos identificadores diferentes que puede usar: t
para el text/template
paquete y h
para el html/template
paquete.
Puedes consultarlo en el parque infantil .
require
y lasimport
declaraciones, mucho mejor que cualquier otro idioma que haya visto