Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Mengeksport Semua Fungsi yang Diingini Apabila Menyusun Program Go ke WASM?
Masalah:
Apabila menyusun atur cara Go ke WASM, hanya subset daripada fungsi yang dieksport dikekalkan. Ini boleh menjadi masalah jika anda perlu mengakses fungsi tertentu daripada JavaScript.
Soalan:
Bagaimanakah kita boleh mengeksport semua fungsi yang dikehendaki semasa menyusun atur cara Go ke WASM?
Jawapan:
Menggunakan TinyGo:
Jika anda bercadang untuk menumpukan pada pembangunan WASM, pertimbangkan untuk menggunakan TinyGo. TinyGo menyediakan //arahan komen eksport yang membolehkan anda menentukan fungsi yang harus dieksport.
<code class="go">// This function is exported to JavaScript, so can be called using // exports.multiply() in JavaScript. //export multiply func multiply(x, y int) int { return x * y; }</code>
Menggunakan Pengkompil Standard Go (Percubaan):
pengkompil standard Go mempunyai perbincangan berterusan tentang mereplikasi ciri eksport TinyGo. Satu penyelesaian yang berpotensi adalah untuk menetapkan fungsi ke ruang nama global JS menggunakan js.Global().Set(...).
Contoh:
<code class="go">package main import ( "github.com/gopherjs/gopherjs/js" ) func main() { js.Global().Set("MyFunc", MyFunc) } func MyFunc() { fmt.Println("MyFunc called from JavaScript") }</code>
Kompilasi:
Kompilasi program Go ke WASM menggunakan arahan berikut:
<code class="sh">GOOS=js GOARCH=wasm go build -o main.wasm main.go</code>
Ini sepatutnya mengeksport fungsi MyFunc dan menjadikannya boleh diakses oleh JavaScript.
Atas ialah kandungan terperinci Bagaimana untuk Mengeksport Semua Fungsi yang Diingini Apabila Menyusun Program Go ke WASM?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!