Golang 코드/표현식 평가/실행 JavaScript의 eval()과 같습니다.
JavaScript의 eval() 메소드를 사용하면 코드/ 동적으로 표현합니다. 이는 Go에 유사한 기능이 존재하는지에 대한 의문을 제기합니다.
해결책
예, 다음을 사용하여 Go 코드/표현식, 특히 표현식을 평가하고 실행할 수 있습니다. Go 표준 라이브러리의 eval.go 패키지.
이를 달성하려면 다음 워크플로가 필요합니다.
예
제공된 JavaScript 코드를 고려하세요.
var x = 10; var y = 20; var a = eval("x * y") + "<br>"; var b = eval("2 + 2") + "<br>"; var c = eval("x + 17") + "<br>"; var res = a + b + c;
다음 Go 코드는 이러한 표현식을 평가하는 방법을 보여줍니다.
import ( "fmt" "go/types" ) func main() { // Create a package pkg := types.NewPackage("main", "go.example.org/eval") // Create a scope scope := types.NewScope(pkg, types.Universe) // Insert constants scope.Insert(types.NewConst(types.NewVar(scope, "x", types.Int), types.Typ[types.Int], 10)) scope.Insert(types.NewConst(types.NewVar(scope, "y", types.Int), types.Typ[types.Int], 20)) // Evaluate expressions res := evalExpression(scope, pkg) fmt.Println(res) // 200\n4\n27 } func evalExpression(scope *types.Scope, pkg *types.Package) string { expr, _ := types.ParseExpr("x * y + \"\n\"") result, _ := eval.Eval(expr, pkg, scope) return result.String() }
위 내용은 동적 코드 평가를 위한 JavaScript의 eval() 함수에 해당하는 Go가 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!