Dalam pembangunan Golang, pemalam sering digunakan untuk meningkatkan kefungsian program. Tetapan pemalam juga merupakan sesuatu yang perlu ditangani dengan kerap semasa pembangunan. Artikel ini akan memperkenalkan cara menyediakan pemalam dalam projek Golang.
Pemalam ialah modul bebas yang dimuatkan dalam program utama yang boleh meningkatkan kefungsian program utama. Di Golang, pemalam boleh menjadi pakej (disusun ke dalam fail .so) atau program boleh laku (disusun ke dalam fail .a). Pemalam boleh dimuatkan dan dipunggah secara dinamik, supaya kefungsian program utama boleh ditingkatkan atau dikurangkan secara dinamik mengikut keperluan.
Di Golang, terdapat dua cara untuk memuatkan pemalam: pemuatan statik dan pemuatan dinamik.
Pemuatan statik merujuk kepada memautkan kod pemalam ke dalam atur cara utama semasa penyusunan kaedah ini boleh digunakan apabila pemalam ialah pakej. Jika pemalam ialah program boleh laku, anda perlu menggunakan pemuatan dinamik.
Pemuatan dinamik merujuk kepada memuatkan kod pemalam secara dinamik ke dalam program utama pada masa jalanan Kaedah ini boleh digunakan apabila pemalam ialah program boleh laku. Di Golang, pemuatan dinamik boleh dicapai menggunakan perpustakaan standard pemalam.
Untuk menyediakan pemalam, kita perlu mengikuti langkah berikut:
3.1 Langkah 1 : Cipta pemalam
Kita boleh mencipta pakej sebagai pemalam dan kemudian menyusunnya menjadi fail .so dengan arahan go build -buildmode=plugin plugin.go. Atau kita boleh mencipta program boleh laku sebagai pemalam, dan kemudian menyusunnya ke dalam fail .so dengan arahan go build -buildmode=shared -o plugin.so plugin.go.
3.2 Langkah 2: Muatkan pemalam
Dalam program utama, kita boleh menggunakan perpustakaan standard pemalam untuk memuatkan pemalam. Pertama, kita perlu menggunakan fungsi Buka pemalam untuk membuka fail pemalam. Kami kemudiannya boleh menggunakan fungsi Carian objek pemalam untuk mencari simbol (fungsi atau pembolehubah) dalam pemalam. Akhir sekali, kita boleh memanggil fungsi dalam pemalam atau menggunakan pembolehubah dalam pemalam melalui simbol yang diperoleh.
Berikut ialah contoh kod:
package main import ( "plugin" ) func main() { // 打开插件文件 p, err := plugin.Open("plugin.so") if err != nil { panic(err) } // 查找插件中的函数 f, err := p.Lookup("Foo") if err != nil { panic(err) } // 调用插件中的函数 f.(func())() }
Dalam kod sampel ini, kami membuka fail pemalam bernama plugin.so dan mencari simbol bernama Foo di dalamnya. Akhirnya, kami memanggil fungsi Foo. Ambil perhatian bahawa kita perlu menggunakan penegasan jenis untuk menukar jenis f kepada func() supaya kita boleh memanggil fungsi Foo.
4. Ringkasan
Melalui pengenalan artikel ini, kami mempelajari cara menyediakan pemalam dalam projek Golang. Semasa pembangunan, anda boleh memilih pemuatan statik atau pemuatan dinamik secara fleksibel untuk menggunakan pemalam seperti yang diperlukan untuk meningkatkan kefungsian program. Pada masa yang sama, kami juga memperkenalkan cara membuat dan memuatkan pemalam untuk membantu kami memahami dengan lebih baik konsep dan penggunaan pemalam.
Atas ialah kandungan terperinci tetapan pemalam golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!