ошибка импорта: golang.org/x/net/html с html - PullRequest
0 голосов
/ 23 февраля 2019

Я использую "html" и "golang.org/x/net/html" в golang.

enter image description here

Получена ошибка поТо же имя. Так что я назвал другое имя, как это.

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

, а также я попытался, как это

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

Но это не для меня.

Вы знаете, как решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 24 февраля 2019

Когда вы используете несколько пакетов с одним и тем же именем, как вы уже видели, 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 .

0 голосов
/ 23 февраля 2019

Используя _ "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 вы установили и т. д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...