The WebAssembly Go Playground
github.com/ccbrown/wasm-go-playground
package main // Alternate syntax, see // Takes a slice of any type and reverses it. func Reverse::
(list []T) { i := 0 j := len(list) - 1 for i < j { list[i], list[j] = list[j], list[i] i++ j-- } } // Requires T to be a string or byte slice. contract Sequence(T) { T string, []byte } // Defines a tree where each node can hold a value that satisfies Sequence. type Tree::
struct { Left *Tree::T Right *Tree::T Value T } func main() { s := []string{"a", "b", "c"} Reverse(s) println(s[0], s[1], s[2]) tree := Tree::string{ Value: "foo", Left: &Tree::string{ Value: "bar", }, } println(tree.Left.Value) }