ホームページ > バックエンド開発 > Golang > Go で複数のパッケージをインポートするときにパッケージ名の競合を解決するにはどうすればよいですか?

Go で複数のパッケージをインポートするときにパッケージ名の競合を解決するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-21 13:52:09
オリジナル
618 人が閲覧しました

How to Resolve Package Name Conflicts When Importing Multiple Packages in Go?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート