build: separate compiler and libs

This commit is contained in:
Li Jie
2025-01-07 21:49:08 +08:00
parent b0123567cd
commit 1172e5bdce
559 changed files with 190 additions and 176 deletions

View File

@@ -0,0 +1,63 @@
package main
type Func func(a int, b int) int
type Func2 func(a int, b int) int
type Call struct {
fn Func
n int
}
func (c *Call) add(a int, b int) int {
return a + b + c.n
}
func add(a int, b int) int {
return a + b
}
func demo1(n int) Func {
m := &Call{n: n}
m.fn = m.add
return m.fn
}
func demo2() Func {
m := &Call{}
return m.add
}
func demo3() Func {
return add
}
func demo4() Func {
return func(a, b int) int { return a + b }
}
func demo5(n int) Func {
return func(a, b int) int { return a + b + n }
}
func main() {
n1 := demo1(1)(99, 200)
println(n1)
n2 := demo2()(100, 200)
println(n2)
n3 := demo3()(100, 200)
println(n3)
n4 := demo4()(100, 200)
println(n4)
n5 := demo5(1)(99, 200)
println(n5)
var fn func(a int, b int) int = demo5(1)
println(fn(99, 200))
var fn2 Func2 = (Func2)(demo5(1))
println(fn2(99, 200))
}