Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Mengeksport Nama Fungsi dalam Go WASM?

Bagaimana untuk Mengeksport Nama Fungsi dalam Go WASM?

Barbara Streisand
Barbara Streisandasal
2024-10-28 17:23:30536semak imbas

How to Export Function Names in Go WASM?

Mendedahkan Nama Fungsi dalam Eksport WASM Go

Apabila menyusun kod Go ke WASM, anda mungkin menghadapi situasi di mana anda ingin mengekalkan nama fungsi dalam fail .wasm yang terhasil. Secara lalai, pengkompil Go standard tidak mengeksport nama fungsi semasa proses penyusunan.

Untuk mencapai keboleheksportan nama fungsi, anda mempunyai dua pilihan:

1. Menggunakan TinyGo

TinyGo, pengkompil Go yang dibenamkan dan berorientasikan WASM, menyediakan sokongan untuk mengeksport fungsi melalui arahan komen //eksport atau //go:eksport. Berikut ialah contoh:

<code class="Go">//export multiply
func multiply(x, y int) int {
    return x * y;
}</code>

Apabila menyusun dengan TinyGo (cth., tinygo build -o wasm.wasm -target wasm ./main.go), fungsi darab akan didedahkan dalam fail WASM yang terhasil.

2. Menggunakan Pengkompil Standard Go (Percubaan)

Pengkompil Go standard kini sedang berusaha untuk memperkenalkan ciri yang serupa dengan arahan //eksport TinyGo. Walau bagaimanapun, ciri ini masih dalam pembangunan. Sebagai alternatif, anda boleh menggunakan fungsi js.Global().Set(...) untuk menetapkan fungsi Go sebagai sifat ruang nama global JS.

Contoh:

<code class="Go">import (
    "github.com/gopherjs/gopherjs/js"
)

func main() {
    js.Global().Set("multiply", multiply)
}

func multiply(x, y int) int {
    return x * y;
}</code>

Pendekatan ini membolehkan anda mendedahkan fungsi darab dalam ruang nama JavaScript global, menjadikannya boleh diakses dalam kod WASM anda.

Atas ialah kandungan terperinci Bagaimana untuk Mengeksport Nama Fungsi dalam Go WASM?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn