Memanfaatkan Fungsi Pakej Tanpa Awalan Pakej
Dalam Go, mengimport pakej dengan berkesan menyalin pengecam yang dieksport ke dalam skop pakej pengimportan. Walau bagaimanapun, terdapat kes di mana seseorang mungkin ingin mengakses fungsi pakej tanpa menggunakan nama pakej mereka sebagai awalan. Soalan ini meneroka kaedah yang berbeza untuk mencapai matlamat ini.
Satu pendekatan ialah teknik "import titik". Spesifikasi Go menyatakan bahawa menggunakan noktah (.) tanpa nama pakej mengimport semua pengecam yang dieksport daripada pakej tersebut ke dalam skop fail pakej semasa. Ini membenarkan akses terus kepada fungsi yang diimport tanpa awalan.
<code class="go">package main import . "fmt" // import all exported identifiers from "fmt" func main() { Println("hey there") }</code>
Walau bagaimanapun, teknik ini tidak digalakkan dalam komuniti Go kerana ia boleh menjadikan kod lebih sukar dibaca dengan mengaburkan sumber pengecam.
Sebagai alternatif, seseorang boleh mengisytiharkan pembolehubah peringkat pakej yang merujuk kepada fungsi yang diingini. Pendekatan ini melibatkan pengimportan pakej dan mengisytiharkan pembolehubah yang memegang rujukan kepada fungsi.
<code class="go">package main import ( "fmt" ) var Println = fmt.Println // declare a package-level variable referencing fmt.Println func main() { Println("Hello, playground") }</code>
Akhir sekali, jenis aliasing boleh digunakan untuk merujuk kepada jenis yang diisytiharkan dalam pakej yang diimport.
<code class="go">package main import ( "fmt" ) type ScanState = fmt.ScanState // type alias fmt.ScanState func main() { // use ScanState as a type without the "fmt." prefix }</code>
Walaupun kaedah ini menyediakan cara untuk mengelakkan awalan nama pakej semasa menggunakan fungsi, adalah penting untuk ambil perhatian bahawa komuniti Go secara amnya menggalakkan penamaan eksplisit dan mengelakkan import titik.
Atas ialah kandungan terperinci Bagaimanakah saya boleh memanggil fungsi pakej dalam Go tanpa menggunakan awalan pakej?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!