Rumah >pembangunan bahagian belakang >Golang >Mengapa Import Relatif Berfungsi dalam Direktori Rumah Saya tetapi Tidak Di Dalam GOPATH?

Mengapa Import Relatif Berfungsi dalam Direktori Rumah Saya tetapi Tidak Di Dalam GOPATH?

Patricia Arquette
Patricia Arquetteasal
2024-10-31 13:52:01224semak imbas

Why Do Relative Imports Work in My Home Directory but Not Inside the GOPATH?

Mengimport Pakej Tempatan dalam Go: Mengapa GOPATH dan Direktori Laman Utama Membuat Perbezaan

Go menawarkan cara yang mudah untuk mengimport pakej tempatan menggunakan relatif laluan. Walau bagaimanapun, pendekatan ini mempunyai had apabila pakej berada dalam GOPATH.

Peranan GOPATH

GOPATH menentukan direktori tempat Go akan mencari pakej. Dalam contoh yang diberikan, projek itu terletak di $GOPATH/src/project, bermakna Go akan menjangkakan nama pakej sepadan dengan struktur direktori.

Had Import Relatif

Laluan import relatif membolehkan anda merujuk pakej dalam direktori semasa atau subdirektorinya. Dalam kes ini, pakej "model" terletak dalam subdirektori "model" projek.

Walau bagaimanapun, apabila menyusun atau memasang pakej menggunakan go build atau go install, import relatif tidak disokong sepenuhnya. Alat ini mengharapkan laluan pakej mutlak atau mengikut struktur standard yang diterangkan dalam "Cara Menulis Kod Go."

Pengecualian Direktori Laman Utama

Apabila projek berada dalam direktori rumah (cth., ~/project), import relatif berfungsi seperti yang diharapkan. Ini kerana direktori rumah bukan sebahagian daripada GOPATH dan Go akan mencari pakej dalam direktori semasa dan subdirektorinya.

Penyelesaian

Untuk mengatasi batasan import relatif dalam GOPATH, adalah disyorkan untuk menstrukturkan kod anda mengikut garis panduan yang disediakan dalam "Cara Menulis Kod Go." Ini melibatkan penggunaan laluan import mutlak atau mengatur pakej anda dengan cara yang sejajar dengan struktur GOPATH.

Atas ialah kandungan terperinci Mengapa Import Relatif Berfungsi dalam Direktori Rumah Saya tetapi Tidak Di Dalam GOPATH?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn