= golang =
Go programmmig language
* https://tour.golang.org/list
* https://tour.golang.org/concurrency/1
* https://learnxinyminutes.com/docs/go/
{{{
package main
import "fmt"
func main() {
fmt.Println("Hello, 世界")
}
}}}
== WebAssembly ==
* On debian buster
* sudo apt install golang # go version go1.11.6 linux/amd64
* sudo apt install golang-src
* mkdir ~/wasmgotest
'''build.sh'''
{{{
go build -o main main.go
GOOS=js GOARCH=wasm go build -o main.wasm main.go
}}}
'''index.html'''
{{{
5555
}}}
'''main.go'''
{{{
package main
//import "fmt"
import "time"
import "syscall/js"
func showTime(){
for x := 0; ; x++ { // infinite loop
currentTime := time.Now()
// console.log in the browser
//fmt.Printf("Hello, WebAssembly %s ! \n" , currentTime.String() )
document := js.Global().Get("document")
document.Call("getElementById", "datetimeHeading").Set("innerHTML", currentTime.String())
//document.getElementById("datetimeHeading").innerHTML="aaa"
time.Sleep( 2 * time.Second )
}
}
func main() {
go showTime() // go routine executes the called function as a lightweight thread
document := js.Global().Get("document")
c := document.Call("getElementById","myCanvas")
ctx := c.Call("getContext","2d")
ctx.Call("beginPath")
ctx.Call("arc","95", "50", "40", "0", "6.283")
ctx.Call("stroke");
time.Sleep(24*time.Hour)
}
}}}
* cp /usr/share/go-1.11/misc/wasm/wasm_exec.js .
* Check on the browser file:///home/vitor/wasmgotest/index.html