Dalam Go, pakej merangkumi kod dan data yang berkaitan. Untuk menggunakan semula fungsi daripada satu pakej dalam pakej yang lain, anda mesti mengimport pakej pertama ke dalam pakej yang kedua.
Pertimbangkan struktur projek berikut:
src |-->config |--> config.go |-->otherPackage |--> otherFile.go |-->main.go
Fail config.go mengandungi definisi jenis untuk Config:
package config type Config struct { // ... }
Anda mahu menggunakan Taipkan konfigurasi dalam fail otherFile.go:
package otherPackage func SomeFunction(target float64, entries [2]float64, config config.Config) { // ... }
Apabila cuba mengimport pakej konfigurasi, anda menghadapi ralat berikut:
Ralat pertama menunjukkan bahawa anda telah mengimport pakej konfigurasi tetapi tidak menggunakannya di mana-mana dalam kod anda. Ralat kedua menunjukkan bahawa jenis Config tidak dikenali dalam skop semasa.
Untuk menyelesaikan isu ini, anda perlu mengimport pakej menggunakan sepenuhnya laluan bukannya laluan relatif. Selain itu, anda perlu melayakkan jenis Config dengan nama pakejnya apabila merujuknya dalam kod anda.
package otherPackage import ( "fmt" "math" "your-project/src/config" ) func SomeFunction(target float64, entries [2]float64, config config.Config) { // ... }
Dengan mengimport pakej dengan laluan penuhnya, anda menyatakan dengan jelas tempat untuk mencari jenis Config. Melayakkan jenis dengan nama pakejnya memastikan pengkompil mengetahui jenis Config yang anda rujuk.
Nota: Jika nama pakej yang anda import adalah sama dengan pembolehubah atau taipkan skop semasa anda, anda perlu menamakan semula pembolehubah atau taip untuk mengelakkan konflik.
Atas ialah kandungan terperinci Bagaimana untuk Menggunakan Jenis Ditakrifkan dalam Satu Pakej dalam Pakej Lain dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!