
- WebAssembly 教程
- WebAssembly - 主頁
- WebAssembly - 概覽
- WebAssembly - 簡介
- WebAssembly - WASM
- WebAssembly - 安裝
- WebAssembly - 編譯為 WASM 的工具
- WebAssembly - 程式結構
- WebAssembly - JavaScript
- WebAssembly - JavaScript API
- WebAssembly - 在 Firefox 中除錯 WASM
- WebAssembly - “Hello World”
- WebAssembly - 模組
- WebAssembly - 驗證
- WebAssembly - 文字格式
- WebAssembly - 將 WAT 轉換為 WASM
- WebAssembly - 動態連結
- WebAssembly - 安全
- WebAssembly - 使用 C
- WebAssembly - 使用 C++
- WebAssembly - 使用 Rust
- WebAssembly - 使用 Go
- WebAssembly - 使用 Nodejs
- WebAssembly - 示例
- WebAssembly 有用資源
- WebAssembly - 快速指南
- WebAssembly - 有用資源
- WebAssembly - 討論
WebAssembly - 使用 Go
1.1 版本及以後的 Go 已新增對 WebAssembly 的支援。要首先對其進行測試,請下載 Go。
轉至 golang 網站,該網站可在 https://golang.org.tw/dl/ 獲得,然後單擊“Download Go”(下載 Go)。根據你的作業系統,下載並安裝 Go。
完成後,編寫一個簡單的程式,在 Go 中新增兩個數字。
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 }
要將以上程式碼編譯為 wasm,首先在 Go 中設定環境變數。
你將需要執行以下命令 −
Set GOOS=js GOARCH=wasm
完成後,執行以下命令 −
go build -o testnum.wasm testnum.go
在命令執行後,你應獲得 testnum.wasm 檔案。
現在讓我們在瀏覽器中測試此程式碼。為此,我們需要獲取隨 Go 一起安裝的 wasm_exec.js。
wasm_exec.js 檔案將可在 Go 中的 misc/wasm/ 資料夾中獲得。
示例
此處是使用 wasm_exec.js 和 testnum.wasm 的 testgo.html 的程式碼。
<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>
輸出
輸出如下 −

廣告