WebAssembly - praca z Go
Go dodała obsługę WebAssembly od wersji 1.1. Aby przetestować to najpierw pobierz, Idź.
Wejdź na stronę golang, która jest dostępna pod adresem https://golang.org/dl/i kliknij Pobierz Go. Zgodnie z systemem operacyjnym pobierz i zainstaluj Go.
Po zakończeniu napisz prosty program, który doda dwie liczby.
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
}
Aby skompilować powyższy kod do wasm, najpierw ustaw zmienne środowiskowe w Go.
Będziesz musiał uruchomić następujące polecenie -
Set GOOS=js
GOARCH=wasm
Po zakończeniu wykonaj poniższe polecenie -
go build -o testnum.wasm testnum.go
Po wykonaniu polecenia powinieneś otrzymać plik testnum.wasm.
Przetestujmy teraz kod w przeglądarce. Aby to zrobić, musimy pobrać plik wasm_exec.js, który jest instalowany za pomocą go.
Plik wasm_exec.js będzie dostępny w folderze misc / wasm / w go.
Przykład
Oto kod dla testgo.html, który wykorzystuje wasm_exec.js i testnum.wasm.
<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>
Wynik
Dane wyjściowe są następujące -