在golang中可以使用反射来动态运行代码。具体步骤如下:

reflect.ValueOfValue
reflect.Value.Call
interface{}

示例代码:


package main
import (
    "fmt"
    "reflect"
)
func Add(a, b int) int {
    return a + b
}
func main() {
    // 动态调用函数Add(1, 2)
    funcValue := reflect.ValueOf(Add)
    result := funcValue.Call([]reflect.Value{reflect.ValueOf(1), reflect.ValueOf(2)})[0]
    fmt.Println(result.Interface().(int)) // 输出3
}
go/astgo/parserreflect