2 回答
TA贡献1795条经验 获得超7个赞
import (
"text/template"
htemplate "html/template" // this is now imported as htemplate
)
在规范中阅读有关它的更多信息。
TA贡献1818条经验 获得超3个赞
Mostafa的回答是正确的,但是需要一些解释。让我尝试回答。
您的示例代码无法正常工作,因为您正试图导入两个具有相同名称的包,即“ template”。
import "html/template" // imports the package as `template`
import "text/template" // imports the package as `template` (again)
导入是一个声明语句:
您不能在同一范围内声明相同的名称(术语:标识符)。
在Go中,import是一个声明,其范围是试图导入这些包的文件。
由于相同的原因,您不能在同一块中声明具有相同名称的变量,因此它不起作用。
以下代码有效:
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}}`)
}
上面的代码为具有相同名称的导入软件包提供了两个不同的名称。所以,现在有两个不同的标识符,您可以使用:t对于text/template包,h为html/template包。
- 2 回答
- 0 关注
- 258 浏览
添加回答
举报