我们使用Go语言编写WebAssembly模块,并在Node.js和浏览器中调用的示例。
首先,我们需要编写一个简单的Go程序,将两个数字相加。以下是我们的Go代码:package main
import "fmt"
func add(a, b int) int {
return a + b
}
func main() {
fmt.Println(add(2, 3))
}将上述代码保存为`example.go`文件。接下来,我们需要使用Go编译器将Go代码编译为WebAssembly二进制文件。请确保已安装Go编译器,并执行以下命令:GOARCH=wasm GOOS=js go build -o example.wasm example.go这将生成一个名为`example.wasm`的WebAssembly二进制文件。现在,我们可以在Node.js中加载和调用WebAssembly模块了。以下是完整的Node.js代码:const fs = require('fs');
// 读取.wasm文件
const wasmCode = fs.readFileSync('example.wasm');
// 加载并实例化WebAssembly模块
WebAssembly.instantiate(wasmCode, {})
.then(result => {
const wasmExports = result.instance.exports;
// 调用WebAssembly模块中的函数
const sum = wasmExports.add(2, 3);
console.log(sum); // 输出 5
});这将加载名为`example.wasm`的WebAssembly模块,并使用`WebAssembly.instantiate()`方法将其实例化为JavaScript对象。然后,我们可以使用JavaScript对象上的方法来与WebAssembly模块进行交互。在这个示例中,我们调用了`add()`函数,并将2和3作为参数传递给它,然后将结果打印到控制台上。接下来,让我们看看如何在浏览器中加载和调用WebAssembly模块。以下是完整的HTML和JavaScript代码:<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>WebAssembly Example</title>
</head>
<body>
<script>
// 加载并实例化WebAssembly模块
WebAssembly.instantiateStreaming(fetch('example.wasm'))
.then(result => {
const wasmExports = result.instance.exports;
// 调用WebAssembly模块中的函数
const sum = wasmExports.add(2, 3);
console.log(sum); // 输出 5
});
</script>
</body>
</html>这将使用`fetch()`函数从服务器上加载名为`example.wasm`的WebAssembly模块,并使用`WebAssembly.instantiateStreaming()`方法将其实例化为JavaScript对象。然后,我们可以使用JavaScript对象上的方法来与WebAssembly模块进行交互。在这个示例中,我们调用了`add()`函数,并将2和3作为参数传递给它,然后将结果打印到控制台上。 网友回复
如何破解绕开seedance2.0真人照片生成视频 限制?
python有哪些算法可以将视频中的每个帧图片去除指定区域水印合成新的视频?
iphone的激光雷达数据能否实时传输到three三维空间中?
豆包sora等ai视频生成大模型生成的视频水印如何去除?
python如何实现在电脑上拨号打电话给手机?
具身机器人与人形机器人区别?
nodejs如何将一个完整的js代码文件切割成不同的部分混淆后动态加载进入html运行?
为啥windows.onerror捕获js错误是这样的{"message":"Script error.","source":"","lineno":0,"colno":0,"stack":null,
2026年ai将全面接管编程?
WebMCP是干啥的?


