导入错误:带有html的golang.org/x/net/html

时间:2019-02-23 17:29:47

标签: html go import

我在golang中使用了“ html”和“ golang.org/x/net/html”。

enter image description here

同名错误,所以我这样命名其他名字。

net_html "golang.org/x/net/html"

我也尝试过这样

_ "golang.org/x/net/html"

但这对我没有效果。

你知道如何解决这个问题吗?

2 个答案:

答案 0 :(得分:2)

使用_ "golang.org/x/net/html"导入软件包,但切断了对它的所有访问权限,仅在需要导入的软件包执行一些初始化且仅执行其他操作时使用。

可以使用net_html "golang.org/x/net/html",在这种情况下,正是您应该这样做。如果仍然出现“将html重新声明为导入的软件包...” 错误,则说明您使用的IDE可能存在问题,但通常Go编译器不会抱怨,您的代码应该运行没有问题。

要亲自查看它在正常环境下是否可以运行,请转到以下链接并尝试运行该程序,您将看到它已编译并执行。 https://play.golang.com/p/jRdWucKjQ_0

这是一个与您得到的错误类型相同的版本。 https://play.golang.com/p/H5AFpXKJOBy


因此,如果net_html "golang.org/x/net/html"无法解决“重新声明为导入包的html ...”错误,请尝试提供有关您的环境的更多信息,例如您使用的IDE ,您已安装的Go的版本等。

答案 1 :(得分:1)

如您所见,当您使用多个具有相同名称的软件包时,Go会抱怨导入的软件包名称之前已经声明过。

为避免此问题,您必须像这样使用自定义PackageName导入软件包:

import (
    "html"
    xhtml "golang.org/x/net/html"
)

然后,您可以通过golang.org/x/net/html来访问xhtml中的公共方法和结构,如下所示:

package main

import (
    "html"

    xhtml "golang.org/x/net/html"
)

func main() {
    // this will use `html` package
    htmlEscape := html.EscapeString("< &")

    // and this will use `golang.org/x/net/html` package
    xHtmlEscape := xhtml.EscapeString("< &")
}

有关更多详细信息,您可能需要检查Go spec