Rumah >pembangunan bahagian belakang >Golang >Mengapakah fungsi saya dalam pakej Go yang berasingan tidak ditentukan?

Mengapakah fungsi saya dalam pakej Go yang berasingan tidak ditentukan?

DDD
DDDasal
2024-12-16 06:51:10652semak imbas

Why is my function in a separate Go package undefined?

Fungsi dalam Pakej Berasingan Tidak Ditakrifkan

Dalam struktur kod yang diberikan, fungsi yang ditakrifkan dalam fail lib.go yang berasingan tidak dikenali seperti yang ditakrifkan apabila dipanggil dari fail main.go. Mari terokai isu ini dan cari penyelesaian.

Apabila cuba menyusun main.go dengan go build main.go, ralat "undefined: Test" ditemui. Ini kerana fungsi Ujian ditakrifkan dalam lib.go, yang berada dalam pakej yang berbeza (bernama "utama") daripada main.go.

Dalam Go, pakej ialah ruang nama terpencil dan fungsi ditakrifkan dalam satu pakej tidak boleh diakses terus oleh fungsi dalam pakej lain tanpa import eksplisit. Untuk menyelesaikan isu ini, anda boleh melakukan salah satu daripada yang berikut:

  • Gunakan pernyataan import yang lebih khusus: Dalam main.go, import pakej lib dengan menambahkan import "packagetest/ lib" pada permulaan fail.
  • Gunakan laluan pakej penuh: Dalam main.go, gantikan Test() dengan packagetest.lib.Test() untuk menunjukkan secara eksplisit laluan pakej penuh tempat fungsi Ujian ditakrifkan.
  • Bina keseluruhan projek: Daripada go build main.go, jalankan go build di akar projek untuk membina semua fail yang diperlukan. Ini akan membolehkan pengkompil mencari dan mengimport fail lib.go.

Atas ialah kandungan terperinci Mengapakah fungsi saya dalam pakej Go yang berasingan tidak ditentukan?. 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