Go でパッケージ名の競合を処理する方法
同じ名前のパッケージをインポートすると、Go ソース ファイルで競合が発生する可能性があります。単一のファイル内で「text/template」パッケージと「html/template」パッケージの両方を使用する必要があるシナリオを考えてみましょう。
次のコードは、名前の衝突によりエラーが発生します:
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}}`) }
この競合を解決するには、次の方法を使用して、別の名前でパッケージをインポートできます。
import ( "text/template" htemplate "html/template" // this is now imported as htemplate )
ここで、次のように使用できます。 「htemplate」は「html/template」パッケージにアクセスするのに対し、「template」は「text/template」パッケージを参照し、名前の衝突を回避し、同じファイル内で両方のパッケージを使用できるようにします。
を参照してください。パッケージ名とインポートに関する詳細とベスト プラクティスについては、Go 言語仕様を参照してください。
以上がGo で複数のパッケージをインポートするときにパッケージ名の競合を解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。