Rumah >pembangunan bahagian belakang >Golang >Cara menyelesaikan ralat golang: tidak boleh merujuk kepada nama 'x' yang tidak dieksport dalam pakej 'y', strategi penyelesaian
Cara menyelesaikan ralat golang: "tidak boleh merujuk kepada nama 'x' yang tidak dieksport dalam pakej 'y'
Semasa proses pembangunan menggunakan golang, kita mungkin menghadapi ralat sedemikian: "tidak boleh merujuk kepada nama 'x' yang tidak dieksport dalam pakej 'y'", ralat ini disebabkan terutamanya apabila kami mengakses pembolehubah atau fungsi yang tidak dieksport.
Dalam golang, kes huruf pertama pembolehubah dan nama fungsi menentukan keterlihatan mereka. Pengecam boleh dieksport jika huruf pertamanya ialah huruf besar jika huruf pertamanya ialah huruf kecil, ia tidak boleh dieksport. Pembolehubah atau fungsi yang tidak boleh dieksport hanya boleh diakses dalam pakej yang sama dan tidak boleh diakses secara langsung oleh pakej lain. Apabila kami cuba mengakses pembolehubah atau fungsi yang tidak dieksport dalam pakej lain, ralat di atas akan berlaku.
Jadi, bagaimana untuk menyelesaikan masalah ini? Berikut adalah beberapa strategi penyelesaian:
Contoh kod:
package y var x string // 不可导出的变量 func foo() { // 不可导出的函数 }
Kod diubah suai:
package y var X string // 可导出的变量 func Foo() { // 可导出的函数 }
Contoh kod:
package y var x string // 不可导出的变量 func getX() string { return x }
Panggil pakej lain:
package main import ( "fmt" "package/y" ) func main() { x := y.getX() fmt.Println(x) }
Contoh kod:
package y type privateType struct { data int } func (p *privateType) privateMethod() { fmt.Println(p.data) } type PublicInterface interface { PublicMethod() } func CreatePrivateType() PublicInterface { return &privateType{} } func (p *privateType) PublicMethod() { p.privateMethod() }
Digunakan dalam pakej lain:
package main import ( "package/y" ) func main() { p := y.CreatePrivateType() p.PublicMethod() // 可以调用 p.privateMethod() // 无法调用,报错 }
Melalui penyelesaian di atas, kita boleh menyelesaikan ralat golang: "tidak boleh merujuk kepada nama 'x' yang tidak dieksport dalam pakej 'y'". Memilih strategi yang sesuai mengikut situasi tertentu boleh menjadikan kod kami lebih mudah dibaca, diselenggara dan meningkatkan kebolehgunaan semula kod.
Atas ialah kandungan terperinci Cara menyelesaikan ralat golang: tidak boleh merujuk kepada nama 'x' yang tidak dieksport dalam pakej 'y', strategi penyelesaian. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!