Evaluate/Execute Golang code/expressions like js' eval()

后端 未结 5 2153
再見小時候
再見小時候 2021-01-02 12:02

Is there a eval() like method on golang?

Evaluate/Execute JavaScript code/expressions:

var x = 10;
var y = 20;
var a = eval(\"x * y\         


        
5条回答
  •  轮回少年
    2021-01-02 12:55

    This parsing example parses GO code at runtime:

    package main
    
    import (
        "fmt"
        "go/parser"
        "go/token"
    )
    
    func main() {
        fset := token.NewFileSet() // positions are relative to fset
    
        src := `package foo
    
    import (
        "fmt"
        "time"
    )
    
    func bar() {
        fmt.Println(time.Now())
    }`
    
        // Parse src but stop after processing the imports.
        f, err := parser.ParseFile(fset, "", src, parser.ImportsOnly)
        if err != nil {
            fmt.Println(err)
            return
        }
    
        // Print the imports from the file's AST.
        for _, s := range f.Imports {
            fmt.Println(s.Path.Value)
        }
    
    }
    

提交回复
热议问题