WebAssembly - Go ile Çalışma
Go, 1.1 sürümünden itibaren WebAssembly için destek ekledi. İlk indirmeyi test etmek için Git.
Adresinde bulunan golang sitesine gidin https://golang.org/dl/ve Download Go'ya tıklayın. İşletim sisteminize göre Go'yu indirin ve yükleyin.
Bittiğinde, hareket halindeyken iki sayı ekleyen basit bir program yazın.
testnum.go
package main
import "fmt"
func main() {
var a int = 100
var b int = 200
var ret int
ret = sum(a, b)
fmt.Printf( "Sum is : %d\n", ret )
}
/* function returning the max between two numbers */
func sum(num1, num2 int) int {
return num1+num2
}
Yukarıdaki kodu wasm olarak derlemek için, önce Go'da ortam değişkenlerini ayarlayın.
Aşağıdaki komutu çalıştırmanız gerekecek -
Set GOOS=js
GOARCH=wasm
Tamamlandığında, aşağıdaki komutu uygulayın -
go build -o testnum.wasm testnum.go
Komut yürütüldüğünde testnum.wasm dosyasını almalısınız.
Şimdi kodu tarayıcıda test edelim. Bunu yapmak için, go ile kurulan wasm_exec.js dosyasını almamız gerekiyor.
Wasm_exec.js dosyası, go konumunda misc / wasm / klasöründe mevcut olacaktır.
Misal
Wasm_exec.js ve testnum.wasm'ı kullanan testgo.html kodu burada.
<html>
<head>
<meta charset="utf-8"/>
<script src="wasm_exec.js"></script>
</head>
<body>
<script type="text/javascript">
const importObj = {
module: {}
};
const go = new Go();
async function fetchAndInstantiate() {
const response = await fetch("testnum.wasm");
const buffer = await response.arrayBuffer();
const obj = await WebAssembly.instantiate(buffer, go.importObject);
console.log(obj);
go.run(obj.instance);
}
fetchAndInstantiate();
</script>
</body>
</html>
Çıktı
Çıktı aşağıdaki gibidir -