go-engine 0.1.5

The wrapper of the Goscript project.
Documentation
package main

import (
	"fmt2"
)


type Point3D struct { x, y, z int }
type Point3Df struct { x, y, z float32 }

type acceptRange struct {
	lo uint8 
	hi uint8 
}

var t = [16]Point3D{{1,2,3},{y:4}}


var acceptRanges = [16]acceptRange{
	0: {1, 2},
	1: {1, 2},
	2: {1, 0x9F},
	3: {0x90, 1},
	4: {1, 0x8F},
}


func withInterface() {
	m := []interface{}{"a string", 1, 2.04, []int{1, 2, 3, 4}}
	get_string := m[0]
	fmt2.Println(get_string)
	get_num := m[1]
	fmt2.Println(get_num)
	get_float := m[2]
	fmt2.Println(get_float)

	get_array := m[3]
	fmt2.Println(get_array)
}


func main() {
    
    var p = Point3D{8,9,10}
    assert(p.x == 8)

    var p2 = Point3D{y:88}
    assert(p2.y == 88)

    var s = []Point3D{{1,2,3},{y:4}}
    fmt2.Println(s[0].x, s[0].y, s[0].z, s[1].x, s[1].y, s[1].z)

    assert(s[0].z == 3)
    assert(s[1].y == 4)

    var pf = Point3Df{1.1,20000000000000000000,3}
    assert(pf.x == 1.1)

    var t2 = []acceptRange{10:{1,1}, {2,2}, 1:{3,3}}
    fmt2.Println(t2)
    assert(t2[0].lo == 0)
    assert(t2[1].lo == 3)
    assert(t2[11].lo == 2)
    assert(len(t2) == 12)

    var t3 = []acceptRange{1:{1,1}, {2,2}, 10:{3,3}}
    fmt2.Println(t3)
    assert(t3[0].lo == 0)
    assert(t3[1].lo == 1)
    assert(t3[2].lo == 2)
    assert(len(t3) == 11)
    
    
    withInterface()
}