-
golang wasm - 2Go lang 실습 2024. 3. 6. 17:29반응형
자바스크립트에서 고의 함수를 호출하는 예...
다른 언어를 넘나들기 위해서는 자료형 부분이 가장 먼저 신경 쓰이는데..
package main import ( "fmt" "syscall/js" ) func main() { js.Global().Set("greet", js.FuncOf( func(this js.Value, args []js.Value) interface{} { if len(args) == 0 { return "Hello, World!" } return fmt.Sprintf("Hello, %s!", args[0].String()) })) select {} }
js.Value라는 자료형을 이용해서 args를 받고..
함수의 결과는 빈 인터페이스를 이용해서 보내는 군...<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Go WebAssembly Example</title> </head> <body> <script src="wasm_exec.js"></script> <script> async function runWasm() { const go = new Go(); const result = await WebAssembly.instantiateStreaming( fetch("main.wasm"), go.importObject ); go.run(result.instance); console.log(window.greet()); console.log(window.greet("John")); } runWasm(); </script> </body> </html>
문자열을 주고 받는 건 알겠는데...
배열이나 맵을 저비용으로 빠르게 주고 받는 방법은 없으려나...
일단 JSON으로 주고 받으면 되지만...반응형