Commands
qrun [-asm] <qlangSrcDir>
qgo <qlangSrcDir>
New features:
- qgo converts qlang packages into Go packages, recursively.
- qrun generates asm code when -asm switch specified.
Bugs:
- qgo may generate incorrect Go codes when closures exist.
Func & closure
Now support passing function pointers as parameters.
func bar(f func(string, ...interface{}) (int, error)) {
f("Hello, %v!\n", "qlang")
}
barVar := func(f func(string, ...interface{}) (int, error)) {
f("Hello, %v!\n", "qlang")
}
bar(printf)
barVar(printf)
String, map, array & slice
Now support indexing/slicing string/map/array.
x := []float64{1, 3.4, 5}
y := map[string]float64{"Hello": 1, "xsw": 3.4}
x[1], y["xsw"] = 1.7, 2.8
title := "Hello,world!" + "2020-05-27"
println(title[:len(title)-len("2006-01-02")], len(x), x[1:])
Builtin & typecast
a := make([]int, uint64(2))
a = append(a, 1, 2, 3)
println(a, "len:", len(a), "cap:", cap(a))
b := make([]int, 0, uint16(4))
c := [1, 2, 3]
b = append(b, c...)
println(b, "len:", len(b), "cap:", cap(b))